본문 바로가기
반응형

IT 이론/데이터베이스30

[데이터베이스] Relational Data Model (관계 데이터 모델) 관계 데이터베이스 스키마 S={R1, R2, ..., Rn} + IC - {R1, R2, ..., Rn} : Set of relation schema (릴레이션 스키마들의 집합) - IC : Set of integrity constraint (무결성 제약조건들의 집합) 관계 데이터베이스 인스턴스 DB = {r1, r2, ..., rn} - {r1, r2, ..., rn} : Set of relation instance - 각 애트리뷰트 ri는 도메인 dom를 가진다. - 도메인 : 원자값들의 집합 각 ri는 Ri의 인스턴스이며 IC에 명시된 무결성 제약조건들을 만족한다. 하나의 릴레이션의 튜플들은 그들 간의 순거를 가지지 않는다. 기본적으로 order를 지정하지 않는 경우 출력되는 순서는 무의미하다. (.. 2013. 1. 12.
[데이터베이스] Referenced Table을 만들 때의 속성 REFERENCES referenced_table [(referenced_columns)] [ON_DELETE { RESTRICT | NO ACTION | CASCADE | SET NULL | SET DEFAULT}] [ON_UPDATE { RESTRICT | NO ACTION | CASCADE | SET NULL | SET DEFAULT}] RESTRICT(default) : 피참조 테이블에서 행을 삭제 또는 수정하기 전에, 참조테이블에서 삭제될 행을 참고하고 있거나 변경될 행의 이전 값을 참조하고 있으면 오류로 처리하고 그렇지 않으면 삭제 또는 수정을 행한다. NO ACTION : 피참조 테이블에서 행을 삭제 또는 수정한 후, 참조 테이블에서 무결성 제약조건을 위배하지 않으면 그대로 두고, 무결성 제.. 2013. 1. 12.
[데이터베이스] 관계 데이타 모델과 관계 제약조건 Integrity constraint(무결정 제약조건)은 모든 relation instance들이 만족해야 하는 조건이다. 1. Domain constraints (도메인 제약조건) 각 attribute는 반드시 각 atrribute의 도메인에 속하는 원자값(atom value)이어야 한다. 각 칼럼은 그 칼럼의 데이터 타입, 범위에 만족하는 값이어야 한다. 2. Constraints on NULLS (NULL/NOT NULL 제약조건) 칵 칼럼은 일반적으론 NULL갑을 가질 수 있다. NOT NULL로 설정되어 있다면 NULL값을 가질 수 없다. 3. Key constraints primary key나 unique칼럼은 유일성을 가지고 있어야 한다. 즉, 중복되는 값이 있으면 안된다. 4. Entity.. 2013. 1. 12.
[데이터베이스&파일처리] B+ 트리에서의 삽입 * 본 자료는 박영철 교수님의 수업 자료를 토대로 정리되었습니다. 저에겐 저작권이 없으며 공부 용으로 포스팅 된 글임을 밝힙니다. 당연히 펌은 금지입니다. 노드의 차수를 3으로 가정하고(최대 Child를 3으로 제한하고) , , , , , , , 를 차례로 삽입하는 경우 트리가 생성 될 경우 빈 루트페이지만 존재한다. 를 삽입하고 를 삽입하는데, 가 작은 값이므로 의 앞으로 삽입된다. 를 삽입 해야 되는데 overflow가 발생한다. 이런 경우 일단 들어가야 할 값은 temp에 저장해 두고 공간확보 작업이 선행된다. 루트 노드의 경우 split하지 않고 하위 노드 2개를 생성한다. 하위 노드는 리프 노드이므로 Doubly Linked List로 연결하고 값을 각각 한개씩 넣어준다. 구분자는 두 값중 하나.. 2013. 1. 12.
[데이터베이스&파일처리] B+트리의 구조 * 본 자료는 박영철 교수님의 수업 자료를 토대로 정리되었습니다. 저에겐 저작권이 없으며 공부 용으로 포스팅 된 글임을 밝힙니다. 당연히 펌은 금지입니다. * : key Root Node : Pr Internal Node : Pr, Pc Leaf Node : Ps, Pa, Pe, Pt, Pb Page Pointer(Tree Pointer) : 하위노드를 가리키는 화살표 Last Child Page Pointer(LCCP) : 화살 표 중 가장 오른쪽(마지막)에 있는 화살표 Root Node Page는 고정된다. * 노드의 삽입, 삭제를 반복해도 루트페이지는 변하지 않는다. (값은 변한다.) Leaf Node 가 아닌 노드는 모두 Internal Node 이다. * 리프 노드만 탐색 값을 가지고 있기 때문.. 2013. 1. 12.
[데이터베이스] Merge Statement 두개의 테이블을 섞는다고 생각하면 된다. 구조까지 추가되는 것이 아니라 값만 insert 또는 update된다. MERGE INTO table1 t1 USING table2 t2 ON (t1.no = t2.no)WHEN MATCHED THEN UPDATE SET t1.name = t2.nameWHEN NOT MATCHED THEN INSERT (no, name) VALUES (t2.no, t2.name); 2012. 12. 12.
[데이터베이스] Transaction isolation level lost update : 두개의 세션에서 동시에 작업 할때 한 세션에서 업데이트 된 값이 다른 세션에서 적용되지 않음 표준 SQL에서 lost update가 적용되는 격리도는 없다. 사실 신경 쓸 필요 없는 개념이다. dirty read : 한 세션에서 적용된, commit되지 않은 값이 다른 세션에서 보여짐 no-repeatable read : 한 세션에서 같은 쿼리문을 두 번 실행할 때 그 사이에 다른 세션에서 수행된 결과 때문에 상이한 결과를 나타냄 phantom read : 한 세션에서 특정한 범위의 레코드를 두 번 불러 올때 처음에 없었던 레코드가 새로 생김. repeatable read의 개념과 비슷하지만 수정, 삭제 되는 것과 새로 생기는 것을 구분하여 다르게 부른다. ISOLATION LE.. 2012. 12. 12.
[데이터베이스] 부질의(subquery), 중첩질의(nested query) 어떤 질의 내에서 사용되는 질의를 가리킨다. 부질의(subquery)가 존재하는 질의를 중첩질의(nested query)라고 한다. 부질의에서 외부질의의 애트리뷰트를 사용하지 않고 단독으로 실행 가능 할 경우 이를 비상관 부질의(uncorrelated subquery), 이런 부질의가 있는 중첩질의를 비상관 중첩질의(uncorrelated subquery) 부질의에서 외부질의의 애트리뷰트를 사용할 경우 이를 상관 부질의(correlated subquery), 이런 부질의가 있는 중첩질의를 상관 중첩질의(correlated subquery) 비상관 중첩질의 예) select name, dno, salary from employee where dno = (select d_id from department w.. 2012. 11. 30.
[데이터베이스] SELECT Statement SELECT (ALL | DISTINCT) target_list (INTO host_var_list) FROM table_expression WHERE 조건 (GROUP BY 집단화 애트리뷰트 (HAVING 집단 조건)) (ORDER BY 애트리뷰트 목록) (LIMIT {count (OFFSET offset) | offset, count}) LIMIT과 OFFSET은 SQL 표준 키워드는 아니다. 하지만 Mysql, Oracle을 비롯한 대부분의 상용 DBMS에서 사용되고 있다. 아래는 각 절별 실행 우선순위 이다. SELECT 문의 실행 순서 SELECT 5 FROM 1 WHERE 2 GROUP BY 3 HAVING 4 ORDER BY 6 LIMIT 7 FROM에 있는 테이블선택 WHERE절에 있는 조.. 2012. 11. 12.
[데이터베이스] INSERT, DELETE, UPDATE Statement INSERT Statement 테이블에 있는 칼럼의 순서와 데이터형식에 맞는 값을 차례로 적어 주어야 한다. INSERT INTO EMPLOYEE VALUES ('','Raisonde','','25','3000','1000','3'); 또는 INSERT문에 있는 값에 대응하는 칼럼 이름을 명시적으로 지정 할 수 있다. 이렇게 할 경우 명시되지 않은 칼럼에는 NULL또는 DEFAULT 값을 가진다. DEFAULT값이 없고 NOT NULL인 경우 오류 발생. INSERT INTO EMPLOYEE(NAME, MANAGER, SALARY, BONUS, DNO) VALUES('Raisonde','25','3000','1000','3'); 서브쿼리 또한 사용 가능하다. INSERT INTO EMPLOYEE VALU.. 2012. 11. 11.
[데이터베이스] Table Statement and Constraint CREATE TABLE EMPLOYEE ( empno INTEGER NOT NULL, empname CHAR(10) UNIQUE, title CHAR(10) DEFAULT '대기사원', manager INTEGER, salary INTEGER CONSTRAINT limit_sal CHECK (salary bonus), CONSTRAINT check_sal CHECK (salary + bonus 2012. 11. 11.
[데이터베이스] User and Schema Management 사용자 등록 CREATE USER user_id IDENTIFIED BY password; 사용자 삭제 DROP USER user_id; 등록된 사용자의 password (암호) 변경 ALTER USER user_id IDENTIFIED BY new_password; Schema 생성 CREATE SCHEMA dbname AUTHORIZATION user_id; Schema 삭제 DROP SCHEMA dbname (CASCADE); 옵션 : CASCADE . 스키마 내의 모든 테이블들, 도메인들, 기타 요소들을 제거. RESTRICT. 아무 요소도 갖지 않는 스키마만을 제거. 테이블이 존재 할 경우 오류 현재 session의 schema 설정 SET SCHEMA dbname; 위는 일반적인 DBMS의 S.. 2012. 11. 11.
반응형