ER-Model의 기본 개념을 설명해보라. 그리고 다음과 같은 현실 세계를 E-R다이어그램으로 표현해 보라. 사원은 사원번호, 이름 , 주소로 구성되고 부서는 부서번호, 부서이름, 예산으로 구성된다. 사원은 한 부서만을 위해 근무한다. 근무 활동은 근무 시간으로 표현한다. 근무 활동은 근무 시간으로 표현한다. 사원번호와 부서번호는 유일하다. 각 부서에는 부서를 관리하는 한 사원이 있으며 이 부서를 관리하는 사원은 모두 다르다. 맞는지... 잘 모르겠다...
① 교수(Professor)는 아이디(ssn), 이름(name), 나이(age), 직위(rank), 연구 분야(speciality)를 가진다. ② 학과(Department)에는 학과번호(dno), 학과이름(dname), 학과사무실(office)이 있다. ③ 대학원생(Graduate)은 아이디(ssn), 이름(name), 나이(age), 학위과정(deg_prog, 석사/박사)을 가진 다. ④ 과제(Project)는 과제번호(pid), 지원기관(sponsor), 개시일(start_date), 종료일(end_date), 예산액 (budget)이 있다. ⑤ 학과마다 그 학과를 운영(run)하는 교수(학과장이라고 한다)가 한 명씩 있다. ⑥ 한 교수가 여러 학과에서 근무(work-dept)할 수 있는데, 이때 각..
관계 데이터베이스에서는 데이터 값들을 테이블 형태의 릴레이션으로 표현하므로 현실 세계를 정확하게 표현하기 위해서 어떤 릴레이션들이 필요하고, 또 각 릴레이션은 어떤 애트리뷰트들로 구성해야 하는가를 결정하는 문제가 중요하다. 곧 릴레이션 스키마(relation schema)가 중요하다. 관계 스킴을 설계하기 위해서 필요한것 => 에트리뷰트들 사이에 존재하는 관계성(relationship) 즉, 데이터 종속성(data dependency), 효율적인 데이터 처리, 그리고 데이터의 일관성 유지 등이 포함되어야함. 데이터의 중복성은 이상(anomaly)를 발생시킨다. 이상(anomaly) 삭제 이상(deletion anomaly) 연쇄 삭제(triggered deletion)를 유발하여 정보 손실이 발생 예..
drop table ENROL; drop table STUDENT; drop table COURSE; create table STUDENT ( sno number(3) primary key, sname nvarchar2(4) constraint sname_always_exists not null, year number(1) default 1, dept nvarchar2(5), unique (dept, sname), constraint year_check check (year >=1 and year
drop table ENROL; drop table STUDENT; drop table COURSE; create table STUDENT ( sno number(3) primary key, sname nvarchar2(4) constraint sname_always_exists not null, year number(1) default 1, dept nvarchar2(5), unique (dept, sname), constraint year_check check (year >=1 and year
CREATE OR REPLACE PROCEDURE print_hello(p in nvarchar2) IS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!'||p); --System.out.println("Hello World"+p) 과 유사한 기능을 가진다. -- "Hello World"+p => String concatenation END; / SET SERVEROUTPUT ON EXECUTE print_hello('홍길동'); -- 이것은 프로시저가 DBMS에 저장되어 있고 이 내용을 호출하여 붙여서 나옴 select *from USER_SOURCE; select *from student; --학과별로 학생의 인원을 계산해서 ST_DEPT 테이블에 기록 delete st_de..
View다른 table로부터 유도된 이름을 가진 virtual table을 말한다. 기본 base table은 물리적으로 구성되어있다.하지만 View는 반드시 물리적으로 구현되어 있는 것은 아니다. -> 뷰의 정의만 시스템 내에 저장하여 두었다가 가져다 쓰는 것 -> 데이터는 저장되지 않고 View가 사용될 때만 만들어지는 table CREATE VIEW [(열_이름_리스트)] AS SELECT 문 [WITH CHECK OPTION]; ※주의※AS SELECT문은 기존의 SELECT 문과는 다르게 UNION이나 ORDER BY를 사용할 수 없다.[WITH CHECK OPTION]절은 이 뷰에 대한 갱신이나 삽입 연산을 실행할 때 뷰 정의 조건을 위반하면 실행이 거부된다.뷰의 정의는 기본 테이블처럼 ALT..
릴레이션 조작을 위한 연산의 종류관계 대수 - 절차 언어관계 해석 - 비절차 언어 관계 대수릴레이션에 대한 연산의 결과는 릴레이션이다. 연산자의 종류1. 일반 집합 연산자 - 합집합 - 교집합 - 차집합 - 카티션 프로덕트(곱셈) 2. 순수 관계 연산자 - 실렉트(select) - 프로젝트 - 조인 - 디비전 (%) 연산의 종류1. 기본 연산 - 합집합, 차집합, 카티션 프로덕트, 실렉트, 프로젝트 2. 복합 연산 - 조인, 교집합, 디비전 조인의 구분1. 세타 조인 - 비교연산자(=,등)를 이용하여 표현된 조인2. 동일 조인 - 비교연산자가 '='인 조인3. 자연 조인 - 양쪽 릴레이션에서 중복된 속성에 대해 동일 조인을 수행하고 조인 결과에서 중복된 속성을 한번만 나타낸 조인 세미 조인 자연 조인과 ..