Study/데이터베이스
8. 데이터 종속성과 정규화
1. 데이터의 논리적 표현 릴레이션 스키마의 설계 - 논리적 데이터베이스 설계 - 관계 모델을 이용하여 어떻게 실세계를 정확히 표현할 것인가? 1. 애트리뷰트, 엔티티, 관계성을 파악 2. 관련된 애트리뷰트들을 릴레이션으로 묶음 - 고려사항 -- 애트리뷰트들간의 관계성(relationship): 데이터 종속성 (A -> B : A와 B는 서로 종속적 관계가 있다 | 학번 -> 학생이름) -- 효율적인 데이터 처리 -- 데이터의 일관성 3. 변칙적 성질의 예방 - 데이터 변경 시의 이상현상 (삽입, 삭제, 변경) 스키마 변환의 원리 1. 정보 표현의 무손실 : 하위 릴레이션들을 조인하면 R릴레이션이 나와야 한다. 2. 최소의 데이터 중복 3. 분리의 원칙 : 연관된 관계성끼리 묶어서 릴레이션을 만들어야 한..
데이터베이스 7. 함수 종속, 1NF, 2NF
1. 데이터의 논리적 표현 A가 정해지면 B도 정해진다 (데이터의 종속성) 데이터 변경 : 삽입, 삭제, 변경 이상 현상이 발생하지 않는 스키마는 좋은 스키마라고 할 수 있다. 학번, 과목번호 => 성적 학번 => 학년 서로다른 종속 관계가 하나의 릴레이션으로 표현되어서 이상현상이 발생 정보표현의 무손실 : R1,R2,R3를 조인하면 R이 되어야 한다. 2. 함수 종속 (Functional Dependency) 함수 종속이 어느경우에나 해당되는 진리인지 확인하기위해 도메인 전문가와 DB전문가가 만나서 함수종속 관계를 분석해 찾아낸다. 3. 기본 정규형 질의를 할때 이름을 성과 이름으로 질의하지 않으면 이름은 원자값 성을 따로 분리해서 질의하면 원자값이 아니다. '제 1 정규형'에서 부분 함수 종속을 제거..
데이터베이스 6. SQL
SQL의 의미 - 구조화 질의어 (문법적으로 엄격) - 종합 데이베이스 언어 역할 : 단순히 검색만을 위한 질의어가 아님 (유저 생성 / 질의 ...) - 데이터 정의어(DDL) / 데이터 조작어(DML) / 데이터 제어어(DCL) 의 기능 모두 제공 1. SQL 데이터 정의문 CONSTRAINT 제약조건 이름 CHECK 제약 조건 내용 SQL에서의 도메인은 SQL이 지원하는 데이터 타입으로만 정의할 수 있다. 정형 숫자타입의 i 는 전체 자릿수, j 는 소숫점 이하 자릿수 2. SQL 데이터 조작문 - SQL의 테이블이 투플의 집합이 아닌이유 : 집합은 두개의 똑같은 원소를 허용하지 x / 따라서 중복을 허용하는 다중집합이나 백이다. - DISTINCT를 통해 집합과 같은 결과를 만들 수 있다. 3. ..
데이터베이스 5. 관계대수와 관계해석
연산과 데이터 언어 연산(절차적) : 시스템 입장 데이터 언어(비절차적) : 사용자 입장 관계 데이터 언어 정형어 (C / JAVA등 문법이 명확한 언어) 관계 대수 (relational algebra) 절차언어 : how, what 관계 해석 (relational calculus) 비 절차 언어 : what 튜플 관계 해석 도메인 관계 해석 관계 해석과 관계 대수는 표현과 기능 면에서 동등하다. (관계 해석으로 표현할수 있는것은 모두 관계 대수로도 표현할 수 있다.) 1. 관계 대수 (절차적 질의) - 릴레이션(튜플의 집합)을 처리하기 위한 연산의 집합 - 기본 연산 일반 집합 연산자 (Relation에 대해 닫혀있다. (relation => relation)) UNION (합집합) INTERSECT ..
데이터베이스 4. 관계 데이터베이스
1. 관계 데이터 모델 - 관계 데이터베이스의 기반 - 수학의 릴레이션과 집합 이론에 기초한다 - 테이블 : Relation - 테이블의 열 : attribute - 테이블의 행 : tuple 애트리뷰트와 도메인 - 도메인 : 애트리뷰트가 취할 수 있는 값들의 집합 (학년 : {1,2,3,4} / {x | 1 애트리뷰트들의 집합("set") 따라서 순서가 없다. - 튜플 : 쌍의 집합 4. 애트리뷰트의 원자성 : - 애트리뷰트 값은 원자값 : 논리적으로 더 이상 분해 불가능한 처리상의 단위 값(unit value) - 정규화 릴레이션 : 1. 애트리뷰트 값으로 원자 값만 허용되는 릴레이션 (반복 그룹(값의 집합)을 허용하지 않는다.) 2. 비정규화 릴레이션은 분해를 통해 정규화 3. 동등한 의미를 유지 ..