전공/데이터베이스 8

8. SQL 프로그래밍 기법

1. 개요 1) 개요 응용 프로그램에서 SQL 데이터베이스를 접근하는 기법들에 대해 정리한다. 이전 절에서 정리한 SQL 문법은 데이터 베이스 연산들을 위한 구조에 대해 정리한 것이다. ORACLE REMBS와 같은 대부분의 DB 시스템은 "대화식 인터페이스"라고 SQL 명령문을 모니터 상에서 입력하고 DB 시스템에서 실행할 수 있다. 예를 들어 ORACLE REMBS를 컴퓨터에 설치하고 SQLPLUS 명령을 실행하면 ORACLE이 제공하는 대화식 인터페이스가 시작되며 이곳에 SQL 명령어나 질의들을 여러줄 입력하고 끝에 세미콜론과 엔터키를 입력하여 DB 시스템에서 명령어들을 실행할 수 있다. 위와 같은 대화식 인터페이스를 통해서 가끔 실행되는 임의의 질의를 수행하는데는 편리하지만 주로 실제로 DB의 동..

7-2. 관계대수와 관계해석 : 이항 관계 연산

1. 이항관계 연산 1) 조인 연산 관계 대수에서 조인연산의 기본 형태는 우선 아래와 같다. R와 S라는 테이블의 카티션곱을 Q라고할 때 에서 join condition은 R과 S에 속하는 애트리뷰트들 간의 관계 조건을 나타낸 것인데 그러한 join 조건을 만족하는 Q만을 나타낸 것을 의미한다. 예를 들어 Mgr_ssn은 부서에서 부서장의 번호를 나타낸 것이고 Ssn은 직원의 번호를 나타낸 것인데 Mgr_ssn즉 부서장을 나타내는 번호를 가진 직원의 이름을 알려고한다. 위와 같은 join 조건으로 부서와 직원 테이블의 카티션곱이 이루어지고 join조건을 만족하는 투플만 남게 된다. 그리고 프로젝트 연산을 통해 Fanem, Lname 애트리뷰트 행만 추출하면 부서장을 나타내는 번호를 가진 직원의 이름을 알..

7-1. 관계대수와 관계해석 : 단항 관계 연산(SELECT, PROECT), 집합 이론

1. 실렉트(SELECT) 연산 ● 실렉트 연산 실렉트 연산이란 단항 연산자로 하나의 릴레이션에만 적용된다. 더욱이 실렉터는 각 투플에 개별적으로 적용된다. 하나의 릴레이션에서 을 만족하는 투플들만 걸러내는 연산으로 실렉트는 릴레이션을 두 집합으로 수평분할 한다고 말할 수 있다. (조건을 만족하는 투플들, 조건을 만족하지 않는 투플들) 아래 예시를 보자. 위 예시는 이 Dno = AND Salary > 25,000이 된다. 부서 번호가 4이고 동시에 급여가 25,000이상인 투플들만 걸러내라는 의미가 된다. 비교 연산자는 아래 중 하나이다. 실렉트 연산의 결과 릴레이션의 차수(=애트리뷰트의 개수)는 원래 릴레이션 R의 차수와 같다. 실렉트 연산은 아래 성질을 만족한다. 2. 프로젝트(PROJECT) 연산..

6-3. SQL 스키마 변경문

1. 스키마 삭제 DROP 명령 이전에서 다루었던 갱신 연산은 투플 단위로 일어나는 갱신 연산이었다. 스키마 변경문 갱신 연산에 대해 알아본다. 1) cascade 설명 테이블에서 투플의 삭제 연산을 수행할 때 cascade 옵션에 대해 우선적으로 설명한다. cascade 개념이 뭔지 알기 위해서임. DEPARTMENT의 Dnumber 중 111이라는 번호를 제거하는 연산을 한다고 생각해보자. 이때 EMPLOYEE의 Esn(외래키) 는 Dnumber를 참조하기 때문에 삭제 연산이 거부되지면 옵션2인 cascade 옵션을 사용하면 연쇄 삭제로 아래와 같이 삭제가 가능하다. DEPARTMENT의 Dnumber 중 111 삭제 -> EMPLOYEE의 Esn중 111을 가진 EMPLOYEE relation의 t..

6-2. 사용자 주장으로 제약 조건 만들기 / SQL view

1. SQL에서 주장으로 일반 제약 조건 명시 1) CREATE ASSERTION 주장 SQL에서 이전까지는 기본키, 유일 키, 엔티티 무결성, 참조 무결 성 등 기본적인 제약 조건들은 CREATE TABLE 문에서 table(relation)을 생성할 때 명시된다. 그리고 만들어진 테이블의 투플들이 지정된 제약 조건들을 무시하면 제약 조건 위반이 발생되게 됩니다. 또한 CREATE TABLE 절 끝에 CHECK 절을 통해 table의 투플들을 제한할 수 있습니다. 이때 이런 CHECK 절이나 CREATEA TABLE 안에 지정된 제약 조건들은 table의 투플 수정, 추가, 삭제 등 업데이트 작업이 이루어질 때만 적용됩니다. 이제 아래의 코드를 우선 보면 CREATE ASSERTION M1 CHECK ..

6-1. 추가 SQL 명령어: 중첩 질의

1. More Complex SQL Search Query 1) NULL의 3가지 값 SQL 에서는 NULL 값이 3가지 상태를 의미한다. 알려지지 않은 값 어떤 사람의 나이는 알려지지 않을 수 있다. 이용할 수 없거나 보류해둔 값 어떤 사람은 자신의 번호를 가지고 있지만 알려주고싶지 않은 경우가 있음 적용할 수 없는 애트리뷰트 고졸인데 대학을 쓰는 애트리뷰티에서는 NULL 값을 써야함 SQL에서는 어떤 애트리뷰트가 NULL 값을 가질 때 위 3가지 경우 중 어떤 경우인지 모르는 경우도 있다. 따라서 SQL에서는 NULL 값에 의미를 두지 않는다. SQL에서 각 릴레이션에 있는 투플들의 NULL 값은 서로 다르다. 일반적으로 SELECT-FROM-WHERE 문에서 WHERE 문에는 해당 논리식을 참으로 ..

5. SQL 명령어

1. SQL 명령어 : CREATE TABLE 1) 명령어 형태부터 보자. CREATE TABLE EMPLOYEE ... 위 명령어는 EMPLOYEE 이름을 가진 테이블을 생성하는 명령어이다. 우선 아래의 예시를 보자. CREATE TABLE EMPLOYEE ( ...., Super_ssn CHAR(9), Dno INT NOTNULL DEFAULT 1, CONSTRAINT A PRIMARY KEY(Ssn), CONSTRAINT B FOREIGN KEY(Super_ssn) REFERENCES EMPLOYEE(Ssn) ON DELETE SET DEFAULT ON UPDATE CASCADE CONSTRAINT C FOREIGN KEY(Dno) REFERENCES DEPARTMENT(Dnumber) ON DEL..

4. 관계 데이터 모델 , 관계 데이터 베이스 제약 조건

이 글은 Database Management System 3ed / R. Ramakrisnan and J. Gehrke 책을 읽고 직접 정리한 글입니다. 더보기 목차 1-1. 관계 모덜의 뜻 정리 1-2. relation의 예시 1-3. 예시를 통한 domain, attribute, tuple, relation 용어 정의 1-4. relation의 특성 1-5. tuple 내에서 값들과 NULL 값 2-1. 관계 모델 제약 조건 2-2. 도메인 제약조건 2-3. 키 제약 조건과 널에 대한 제약 조건 2-4. 관계 데이터베이스 스키마 2-5. 엔티티 무결성 제약조건 2-6. 참조 무결성 제약조건 3-1. 렐레이션의 3가지 갱신 연산(삭제, 삽입, 수정) 1-1. 관계 모델의 뜻 정리 관계 모델이란 DB의 ..