데이터베이스 70

트랜잭션_동시성 제어_로킹 기법_다중 단위 크기 로킹(multiple granularity locking), 로크 lock, 호환성 행렬

▣ 트랜잭션_동시성 제어_로킹 기법_다중 단위 크기 로킹(multiple granularity locking), 로크 lock, 호환성 행렬 잠금 호환성에 따라 여러 트랜잭션이 동시에 같은 리소스에 대한 잠금을 획득할 수 있는지 여부가 결정됨 이미 다른 트랜잭션에서 리소스를 잠근 경우에는 요청된 잠금 모드가 기존 잠금 모드와 호환되어야만 새 잠금 요청이 허용될 수 있음 요청된 잠금의 모드가 기존 잠금과 호환되지 않을 경우 새 잠금을 요청하는 트랜잭션은 기존 잠금이 해제되거나 잠금 시간 초과 간격이 만료될 때까지 기다림(배타적 잠금과 호환되는 잠금 모드는 없음) 배타적(X) 잠금이 설정되어 있는 동안 다른 트랜잭션은 배타적(X) 잠금이 해제될 때까지 해당 리소스에 대해 공유, 업데이트 또는 배타적 잠금을 ..

데이터베이스 2021.08.21

SQL 조인_이너 조인, 아웃터 조인, 세타 조인, 동등 조인, 자연 조인, 세미 조인, 교차 조인, 셀프 조인

▣ SQL 조인_이너 조인, 아웃터 조인, 세타 조인, 동등 조인, 자연 조인, 세미 조인, 교차 조인, 셀프 조인 1. INNER JOIN 교집합(A∩B) 2. LEFT OUTER JOIN 교집합 연산 결과와 차집합 연산 결과를 합친것( (A∩B) ∪ (A-B) ) 오라클 SQL은 WHERE 테이블A.조인키컬럼 = 테이블B.조인키컬럼(+) 표시 3. RIGHT OUTER JOIN 교집합 연산 결과와 차집합 연산 결과를 합친것( (A∩B) ∪ (B-A) ) 오라클 SQL은 WHERE 테이블A.조인키컬럼(+) = 테이블B.조인키컬럼 표시 4. FULL OUTER JOIN 합집합(A∪B) * OUTER JOIN 속성 : 공통된 속성을 매개로 하는 정보가 아니더라도 버리지 않고 연산의 결과 릴레이션에 정보를 ..

데이터베이스 2021.08.20

뷰 (VIEW)에서 활용되는 WITH CHECK OPTION, SQL 검증

▣ 뷰(VIEW)에서 활용되는 WITH CHECK OPTION WITH CHECK OPTION절은 VIEW에 대한 갱신이나 삽입 연산을 실행할 때 VIEW 정의 조건을 위반하면 실행이 거부된다는 것을 의미하므로 - 투플이 뷰에서 사라지지 않도록 보호하고, - 데이터 무결성을 유지할 수 있으며, - INSERT문과 UPDATE문으로 뷰에 정의된 조건에 위배된 투플을 생성할 수 없음. 2012년 51번 정답 : 4번 2014년 51번 정답 : 2번 1번) 기본키 제약조건이 풀렸을 경우, VALUES ('이태훈', '수학') -> VALUES ('이태훈', '컴퓨터') 바꾸면 삽입가능 WITH CHECK OPTION 에러 발생 / VIEW를 만들 때 해당 제약조건 안에서만 삽입 가능 3번) Inner Join..

데이터베이스 2021.08.19

관계대수 연산_실렉션, 프로젝션, 합집합, 카디션곱, 교집합, 조인, 디비전

▣ 관계대수_실렉션, 프로젝션, 합집합, 카디션곱, 교집합, 조인, 디비전 ■ 디비전 연산 R(Z, Y) ÷ S(Y) = R[Z] - ((R[Z] × S) - R)[Z] (단, [ ] : 프로젝션 연산) S(Y)의 모든 튜플에 연관되어 있는 R[Z]의 튜플을 선택 복합연산인 디비젼 연산(division)을 기본 연산 대체할 때 카티션 곱, 차집합, 프로젝션 사용 2013년 59번 정답 : 2번 R(Z, Y) ÷ S(Y) = R[Z] - (R[Z] × S) - R)[Z] (단, [ ] : 프로젝션 연산) S(Y)의 모든 튜플에 연관되어 있는 R[Z]의 튜플을 선택 복합연산인 디비젼 연산(division)을 기본 연산 대체할 때 카티션 곱, 차집합, 프로젝션 사용 2014년 56번 정답 : 1번 "잔액이 $..

데이터베이스 2021.08.13

동시성 제어_ 트랜잭션 격리 수준(isolation Level) 고립단계_갱신 분실 Lost Update, 부정판독 Dirty Read, 비반복판독 Non-Reatable Read, 가상 판독 Phantom Reads, 연쇄 복귀, 모순성 , 독립성 레벨, 병행수행도, ..

▣ 동시성 제어_ 트랜잭션 격리 수준(isolation Level) 고립단계_갱신 분실 Lost Update, 부정판독 Dirty Read, 비반복판독 Non-Reatable Read, 가상 판독 Phantom Reads, 연쇄 복귀, 모순성 , 독립성 레벨, 병행수행도, 고립성 독립성 레벨 isolation Level 부정 판독 (Dirty Read) 비반복 판독 (Non-Reatable Read) 팬텀 (Phantom Read) 비고 L0. Read Uncommitted O O O shared lock(X) 아직 Commit되지 않은 데이터를 다른 트랜잭션에서 읽는 것 허용 L1. Read Committed X O O shared lock(O) 트랜잭션에서 commit되어 확정된 데이터만 다른 트랜잭..

데이터베이스 2021.08.13

GROUP BY, HAVING SQL 예제 1, 2명 이상의 학생, 성적평균 80점이상인 학과, 학과코드, 학과명, 학생수

▣ GROUP BY, HAVING 예제 1 2013년 62번 정답 : 2번 -- 2013년 정보시스템감리사 DB 62번 -- 문제) 2명이상의 학생을 갖는 학과에 대해, 성적평균이 80점 이상인 학과의 학과코드, 학과명, 학생수를 검색하시오. CREATE TABLE STU_62 ( SNO INT , SNAME VARCHAR(20) NOT NULL , ADDRESS VARCHAR(20) , SCORE INT , DNO INT , PRIMARY KEY (SNO) ) ; INSERT INTO STU_62 VALUES (100, 'HONG', 'Seoul', 95, 100); INSERT INTO STU_62 VALUES (300, 'LEE', 'Busan', 90, 200); INSERT INTO STU_62..

데이터베이스 2021.08.13

ER모델, E-R 모델을 관계 데이터 모델로 사상_관계, 강한개체, 전체참여, 참조외래키, 부서, 직원

▣ E-R 모델을 관계 데이터 모델로 사상_관계, 강한개체, 전체참여, 참조외래키 ER 모델 관계 스키마 2진 관계 1:1양방향 완전관계 두 릴레이션을 하나로 통합(일반적인 경우) 두 엔티티타입과 관계타입을 하나의 릴레이션 스키마로 생성하며, 외래키는 없다 1:1 단방향 완전관계 부분 관계 릴레이션의 PK를 완전 관계 릴레이션의 FK로 적용 1:1 양방향 부분관계 두 릴레이션의 PK만으로 구성된 릴레이션을 생성 (신규)한쪽 개체의 키 애트리뷰트를 키값으로, 다른쪽의 키 애트리뷰트를 외래키로 (2개 외래키) 1:N N측 완전관계 1측의 PK를 N측의 FK로 설정 1:N 1측 완전관계 두 릴레이션의 PK로 구성된 릴레이션을 생성 (신규) n-side의 기본키 + 1-side의 기본키를 외래키로 (2개 외래키..

데이터베이스 2021.08.12

참조무결성 제약(ON DELETE RESTRICT, ON UPDATE CASCADE), 직원과 부서, 부서번호 삭제, 부서번호 업데이트, SQL

▣ 참조무결성 제약(ON DELETE RESTRICT, ON UPDATE CASCADE) 외래키 옵션 1) On Delete Cascade : 부모 데이터 삭제 시 자식 데이터도 삭제 Set null : 부모 데이터 삭제 시 자식 테이블의 참조 컬럼을 Null로 업데이트 Set default : 부모 데이터 삭제 시 자식 테이블의 참조 컬럼을 Default 값으로 업데이트 Restrict : 자식 테이블이 참조하고 있을 경우, 데이터 삭제 불가 No Action : Restrict와 동일, 옵션을 지정하지 않았을 경우 자동으로 선택된다. 2) On Update Cascade : 부모 데이터 업데이트 시 자식 데이터도 업데이트 Set null : 부모 데이터 업데이트 시 자식 테이블의 참조 컬럼을 Null..

데이터베이스 2021.08.11

데카르트곱(Descartes product) 또는 카티션 프로덕트(Cartesian product), CROSS JOIN

■ 데카르트곱(Descartes product) 또는 카티션 프로덕트(Cartesian product), CROSS JOIN 데카르트곱 (Descartes product, Cartesian product) 임의의 두 집합 A와 B에 대해 x∈A, y∈B인 모든 순서쌍 (x, y)로 이루어진 집합을 A와 B의 데카르트곱이라 하고, A×B로 표현한다 A × B = { (x, y) | x∈A, y∈B } 2013년 52번 정답 : 3번 차수 7, 카디날리티 9 -- SAMPLE SQL(오라클) -- MY SQL 하고 문법이 달라요 ㅠㅠ CREATE TABLE STU_52 ( SNO CHAR(4) , SNAME VARCHAR2(50) NOT NULL , ADDR VARCHAR2(4) , SCORE NUMBER ..

데이터베이스 2021.08.11

클러스터 인덱스(Clustered Index) vs 넌 클러스터 인덱스(Non-Clustered Index)

▣ 클러스터 인덱스(Clustered Index) vs 넌 클러스터 인덱스(Non-Clustered Index) 인덱스 생성이 필요한 컬럼 클러스터 인덱스(Clustered Index) 넌 클러스터 인덱스(Non-Clustered Index) 테이블당 1개씩만 허용된다. 물리적으로 행을 재배열한다. PK설정 시 그 칼럼은 자동으로 클러스터드 인덱스가 만들어진다. 인덱스 자체의 리프 페이지가 곧 데이터이다. 즉 테이블 자체가 인덱스이다. (따로 인덱스 페이지를 만들지 않는다.) 인덱스 페이지 용량이 넌 클러스티드 인덱스 페이지 용량보다 작음 데이터 입력, 수정, 삭제 시 항상 정렬 상태를 유지한다. 비 클러스형 인덱스보다 검색 속도는 더 빠르다. 하지만 데이터의 입력. 수정, 삭제는 느리다. 30% 이내에..

데이터베이스 2021.08.11