Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법.
이진 나무 구조 강윤섭 2008년 5월 23일.
ER Schema (추가)
1. 관계 데이터베이스의 정규화 (1) 정규화 1) 이상(anomaly) ① 이상의 정의 • 관계 모델에서는 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 (anomaly) 발생 • 데이터의 중복으로 인하여 관계연산을.
Nested Queries CSED421: Database Systems Labs.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
Chapter 4: Intermediate SQL
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
Excel 일차 강사 : 박영민.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
4.2 SQL 개요 SQL 개요 SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는데 중요한 요인의 하나
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
SQL: 데이터 정의, 제약사항, 기본 질의와 갱신
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
MySQL 및 Workbench 설치 데이터 베이스.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
6장 그룹 함수.
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 어느것을 기본으로 만들것인가
질의 최적화 예제 선택연산과 추출 연산은 가급적 일찍 수행하라..
KIM HEESANG PL/SQL 2 KIM HEESANG
You YoungSEok Oracle 설치 You YoungSEok
1.4 중첩된 한정기호 (Nested Quantifiers) 이산수학 (Discrete Mathematics)
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
8장. 상호 배타적 집합의 처리.
관계 데이터 모델과 관계 데이터베이스 제약 조건
ER-관계 사상에 의한 관계 데이터베이스 설계
테이블 만들기 실습 목표 입력할 tableDB <실습1> SSMS에서 테이블 생성
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
23장. Trigger CREATE TRIGGER 구문 DROP TRIGGER 구문 트리거 사용하기
문성우 SQL 실습 Part Ⅰ 문성우.
SQL Server 2000 세미나 View, SP &Trigger
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
14 뷰(View) 뷰의 개념 뷰 관리.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
Chapter 10 데이터 검색1.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
3장 (2) 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
수치해석 ch3 환경공학과 김지숙.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
11장. 보안과 권한 관리 보안 권한 관리. 11장. 보안과 권한 관리 보안 권한 관리.
진리표를 이용한 타당성 증명 진리표(truth table) : 단순 문장들이 진리값을 상이하게 가질 수 있는 가능한 모든 경우를 남김없이 열거한 표 (ex) 오늘은 날씨가 맑거나 비가 올 것이다. 오늘은 날씨가 맑다 비가 온다 오늘은 날씨가 맑거나 비가 올 것이다. T.
6 객체.
Presentation transcript:

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 제 6 장 무결성 제약 조건 도메인 제약 조건 참조 무결성 주장 트리거 함수적 종속 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 도메인 제약 조건 무결성 제약 조건은 데이터베이스에의 권한 있는 변경 이 데이터의 일관성을 잃지 않도록 보장함으로써 데이 터베이스를 우발적인 손상으로부터 보호한다. 도메인 제약 조건은 가장 기본적인 무결성 제약 조건이 다. 데이터베이스에 삽입되는 테스트 값과 비교가 의미 있 도록 보장하는 테스트 질의. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 도메인 제약 조건(계속) SQL-92에서의 check 절은 도메인이 제한되도록 한다 - check 절을 사용해 hourly-wage 도메인에는 특정 값을 초과하는 값만을 허용하도록 하라. create domain hourly-wage numeric(5,2) constraint value-test check(value >= 4.00) - hourly-wage 도메인은 소수점 이하 2자리를 가진 5자리의 십진수 인 것으로 선언되었다. - 도메인에는 hourly-wage 가 4.0 이상의 값을 갖도록 하는 제약 조 건을 갖는다. - constraint value-test 절은 선택 사항이다. 갱신 위배 제약 조건을 나타내는데 유용하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 참조 무결성 주어진 애트리뷰트의 집합에 대해 한 릴레이션에 나타나는 값이 다른 릴레이션의 어떤 애트리뷰의 집합에도 또한 나타나도록 한다. - 예 : Perryridge 가 account 릴레이션내 튜플들중 하나에 나타나고 있는 지점명이면, branch 릴레이션 내에 Perryridge 지점 튜플이 존재한다. 형식적 정의 - r1(R1)과 r2(R2)를 각각 주키 K1과 K2를 가진 릴레이션이라 하자. - r2 내 각각의 t2에 대해 t1[K1] = t2[]인 r1내에 튜플 t1이 존재해야 한다면, R2의 부분 집합 는 릴레이션 r1의 K1을 참조하는 외래 키이다. - 참조 무결성 제약 조건: (r2)  K1(r1) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 E-R 모델에서의 참조 무결성 엔티티 집합 E1과 E2 간의 관계 집합 R을 고려해 보자. R에 대한 관계형 스키마에는 E1의 주 키 K1과 E2의 주 키 K2를 포함한다. 그러면 K1과 K2는 각각 관계형 스키마 E1과 E2의 외래 키를 이룬다. 약 엔티티 집합 또한 참조 무결성 제약 조건의 대상이 다. 그렇기 때문에, 약 엔티티 집합에 대한 관계 스키마 는 그것에 종속되고 있는 엔티티 집합의 주 키를 포함 해야만 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 데이터베이스 수정 다음과 같은 참조 무결성 제약 조건을 유지하도록 하기 위해서는 아래의 테스트가 이루어져야 한다. (r2)  K(r1) 삽입. 튜플 t2가 r2에 삽입되려면, 시스템은 r1내에 t1[K] = t2[]인 튜플 t1이 존재하도록 보장해야만 한다. 즉 아래와 같이. t2[]  K(r1) 삭제. 튜플 t1이 r1에서 삭제되려면, 시스템은 t1을 참조하는 r2내의 튜플들의 집합을 계산해야만 한다.  = t1[K] (r2) 이 집합이 공집합이 아니면, 삭제 명령은 에러로 거절되던지 t1 을 참조하는 튜플들 자신이 삭제되어야 한다 (연쇄 삭제가 가능하다). Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 데이터베이스 수정(계속) 갱신. 두 가지 경우가 있다: - 튜플 t2가 릴레이션 r2내에서 갱신되고 그 갱신이 외래 키 의 값 을 수정하면, 삽입의 경우와 유사한 테스트가 이루어진다. t2를 튜플 t2의 새로운 값을 나타낸다 하자. 시스템은 다음을 보장해야 만 한다. t2[]  K(r1) - 튜플 t1이 r1내에서 갱신되고 그 갱신이 주 키 K의 값을 수정하면, 삭제의 경우와 유사한 테스트가 이루어진다. 시스템은 t1의 이전 값을 이용해(갱신이 적용되기 전의 값) 다음을 계산해야 한다.  = t1[K] (r2) 이 집합이 공집합이 아니면, 갱신은 에러로 거절되던지 집합내 의 튜플들이 연쇄 갱신되던지 집합내의 튜플들이 삭제될 수 있 다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 SQL에서의 참조 무결성 주 키, 후보 키 및 외래 키는 SQL create table 문의 일부로서 지정될 수 있다. - create table 문의 primary key 절은 주 키를 이루는 애트리뷰트 리스트를 내포한다. - create table 문의 unique key 절은 후보 키를 이루는 애트리뷰트 리스트를 내포한다. - create table 문의 foreign key 절은 외래 키를 이루는 애트리뷰트 리스트와 외래 키가 참조하는 릴레이션명 모두를 내포한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 SQL에서의 참조 무결성 - 예제 create table customer (customer-name char(20) not null, customer-street char(30), customer-city char(30), primary key (customer-name)) create table branch (branch -name char(15) not null, branch-city char(30), assets integer, primary key (branch-name)) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 SQL에서의 참조 무결성 - 예제(계속) create table account (branch-name char(15), account-number char(10) not null, balance integer, primary key (account-number), foreign key (branch-name) references branch) create table depositor (customer-name char(20) not null, primary key (customer-name, account-number), foreign key (account-number) references account, foreign key (customer-name) references customer) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 SQL에서의 연쇄 행위 create table account ... foreign key (branch-name) references branch on delete restrict on update cascade, ...) on delete cascade절로 인해 branch내의 튜플 삭제가 참조 무결성 제약 조건을 위배하면, 삭제된 지점을 참조하는 account 릴레이션 에서 연쇄 삭제가 발생한다. 연쇄 갱신도 유사하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 SQL에서의 연쇄 행위(계속) 각 종속에 대해 지정된 on delete cascade를 가진 여러 릴레이션에 걸친 외래 키 종속의 체인이 존재하면, 체 인의 한 끝에서의 삭제 또는 갱신은 전체 체인에 걸쳐 전파할 수 있다. 연쇄 갱신 또는 삭제가 추후의 연쇄 연산에 의해 처리 될 수 없는 제약 조건 위배를 야기하면, 시스템은 트랜 잭션을 중단시킨다. 그 결과, 트랜잭션과 그의 연쇄 행 위로 발생한 모든 변경은 취소된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 주장 주장이란 데이터베이스가 항상 만족해야 할 조건을 표 현하는 술어이다. SQL-92에서의 주장은 다음과 같은 형식을 갖는다 create assertion <주장명> check <술어> 주장이 이루어질 때, 시스템은 그 타당성을 테스트한다. 이 테스팅은 상당한 양의 부가 경비를 초래할 수 있다. 따라서, 주장은 주의깊게 사용해야 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 주장 예제 각 지점의 모든 대출 총액은 모든 예금 총 잔고보다 작 아야 한다. create assertion sum-constraint check (not exists (select * from branch where (select sum( amount) from loan where loan.branch-name =branch.branch-name) >=(select sum( balance) from account where account.branch-name =branch.branch-name))) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 주장 예제 각 대출은 최소 잔고 1,000불인 예금을 유지하는 적어 도 한 사람의 대출자를 가져야 한다. create assertion balance-constraint check (not exists (select * from loan where not exists ( select * from borrower,depositor,account where loan.loan-number =borrower.loan-number and borrower.customer-name =depositor.customer-name and depositor.account-number =account.account-number and account.balance >= 1000))) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 트리거 트리거는 데이터베이스 수정의 부작용으로 시스템에 의해 자동으로 실행되는 문장이다. 트리거 기법을 설계하려면 다음과 같이 해야 한다 - 트리거가 실행될 조건을 명시한다. - 트리거가 실행될 때 취해질 행위를 명시한다. SQL-92 표준에는 트리거를 포함하지 않지만, 많은 제 품에서 트리거를 지원한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 트리거 예제 음의 예금 잔고를 허용하는 대신 은행에서는 다음과 같이 대월을 취급한다 하자. - 예금 잔고를 0으로 설정 - 대월 금액 만큼의 대출 생성 - 이 대출에 대월한 예금 계좌의 번호를 대출 번호로 부여 트리거를 실행하기 위한 조건은 음수의 잔고 값이 되도록 하는 account 릴레이션에의 갱신이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 트리거 예제(계속) define trigger overdraft on update of account T (if new T.balance < 0 then (insert into loan values (T.branch-name, T.account-number, - new T.balance) insert into borrower (select customer-name,account-number from depositor where T.account-number = depositor.account-number) update account S set S.balance = 0 where S.account-number =T.account-number)) T.balance 앞에 사용한 키워드 new는 갱신 이후의 T.balance 값이 사용되어야 함을 의미한다. 이것이 생략되면, 갱신 이전의 값이 사용된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수적 종속 적법한 릴레이션들의 집합에 대한 제약 조건 어떤 애트리뷰트 집합의 값이 다른 애트리뷰트 집합의 값을 유일하게 결정하도록 요구한다. 함수적 종속은 키의 개념을 일반화한 것이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수적 종속(계속) R을 다음과 같은 릴레이션 스키마라 하자.   R,   R R상에 함수적 종속   가 존재하는 필요 충분 조건은, 어떠한 적법한 릴레이션 r(R)에 대해 r의 두 튜플 t1과 t2가 애트리뷰트 가 같고 또한 애트리뷰트 가 같을 때이다. 즉, 아래의 경우이다. t1[] = t2[]  t1[] = t2[] K가 릴레이션 스키마 R의 수퍼 키인 필요 충분 조건은 K  R이다. K가 R의 후보 키인 필요 충분 조건은 - K  R 이고 -   K가 아닌   R 이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수적 종속(계속) 함수적 종속은 수퍼 키를 이용해서 표현할 수 없는 제약 조건을 표현하도록 한다. 아래의 스키마를 고려해 보자. Loan-info-schema =( branch-name,loan-number, customer-name,amount). 아래와 같은 함수적 종속의 집합은 가진다고 예상하지만, loan-number  amount loan-number  branch-name 다음과 같은 함수적 종속을 가진다고는 예상하지 않는다. loan-number  customer-name Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수적 종속의 사용 함수적 종속을 이용해 다음을 한다. - 주어진 함수적 종속의 집합하에 릴레이션들이 적법한가의 여부 검사. 릴레이션 r이 함수적 종속 집합 F하에서 적법하다면, r은 F를 만족한다고 한다. - 적법한 릴레이션상에 제약 조건을 지정. R상의 모든 적법한 릴레 이션이 함수적 종속 집합 F를 만족하면, R상에 F가 존재한다고 한 다. 유의: 함수적 종속이 모든 적법한 사례에 존재하지 않는다 하더라 도, 릴레이션 스키마의 특정 사례가 함수적 종속을 만족할 수 있다. 예를 들어, Loan-schema의 특정 사례가 경우에 따라 loan-number  customer-name을 만족한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수적 종속 집합의 폐포 함수적 종속 집합 F가 주어지면, F에 논리적으로 내포되는 어떤 다른 함수적 종속이 존재한다. F에 논리적으로 내포되는 함수적 종속 집합을 F의 폐포라 한다. F의 폐포를 F+로 나타낸다. 암스트롱의 공리를 적용해 모든 F+를 찾을 수 있다. -   이면    이다(재귀 규칙). -    이면   이다(증가 규칙). -    이고    이면    이다(이행 규칙). 이들 규칙은 건전하고 완전하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 폐포(계속) 다음의 추가 규칙을 사용해 F+의 계산을 더욱 단순화할 수 있다. -    이고    이면    이다(합집합 규칙). -    이면    이고   이다(분해 규칙). -    이고    이면    이다(가이행 규칙). 이상의 규칙은 암스트롱의 공리에서 추론할 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 R = ( A,B,C,G,H,I) F = {A  B A  C CG  H CG  I B  H} F+의 멤버들 - A  H - AG  I - CG  HI Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 애트리뷰트 집합의 폐포 F하의 의 폐포(+로 나타냄)는 F하의 에 의해 함수적으로 결정되는 애트리뷰트의 집합으로 정의한다.   가 F+에 존재    + F하의 의 폐포 +를 계산하는 알고리즘 result := ; while (changes to result) do for each    in F do begin if   result then result := result  ; end Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 R = ( A,B,C,G,H,I) F = {A  B A  C CG  H CG  I B  H} (AG+ ) 1. result = AG 2. result = ABCG (A  C 이고 A  AGB) 3. result = ABCGH (CG  H 이고 CG  AGBC) 4. result = ABCGHI (CG  I 이고 CG  AGBCH) AG 는 후보 키인가? 1.AG  R 2. A+  R 인가? 3. G+  R 인가? Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 규준 커버 함수적 종속의 집합 F와 F내의 함수적 종속   를 고려해 보자. - A  이고 F가 (F - {  }  {( - A)  }를 논리적으로 내포 하면 애트리뷰트 A는 내에서 이질적이다. - A   이고 함수적 종속 집합 (F - {  })  {  ( - A)}가 F 를 논리적으로 내포하면 애트리뷰트 A는 내에서 이질적이다. F의 규준 커버 Fc는 F가 Fc내의 모든 종속을 논리적으로 내포하고 Fc가 F의 모든 종속을 논리적으로 내포하며 또한 아래와 같은 종속의 집합이다. - Fc 내의 어떠한 함수적 종속도 이질적인 애트리뷰트를 포함하지 않는다. - Fc 내의 함수적 종속의 각 왼쪽 편이 유일하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 규준 커버(계속) F의 규준 커버 계산 알고리즘 repeat Use the union rule to replace any dependencies in F 1  1 and 1  2 with 1  1 2 Find a functional dependency    with an extraneous attribute either in  or in  If an extraneous attribute is found, delete it from    until F does not change Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 규준 커버 계산 예제 R = (A, B, C) F = {A  BC B  C A  B AB  C} A  BC 와 A  B를 A  BC로 결합한다. B  C 가 AB  C를 논리적으로 내포하므로 A는 AB  C에서 이질적이다. A  BC 는 A  B와 B  C에 의해 논리적으로 내포되므로 C는 A  BC에서 이질적이다. 규준 커버는 다음과 같다 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수