제 4 장 관계 데이타 모델과 관계 데이타베이스 제약조건

Slides:



Advertisements
Similar presentations
제 3 장 개체 - 관계 (ER) 모델을 사용한 데이타 모델링 Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe Copyright© 2002 황규영 홍의경 음두헌 박영철 김진호 조완섭.
Advertisements

1 3 장. 개체 - 관계 (ER) 모델을 사용한 데이타 모델링 3.1 데이타베이스 설계를 위한 고수준의 개념적 데이타 모델의 사용 3.2 예 3.3 ER 모델의 개념 3.4 개체 - 관계 ( ER ) 다이어그램에 대한 표기법 3.5 스키마 구조물들에 대한 적절한 이름.
2011년 월별 영업일수 정리 2011년 월별 Calendar (단위: 일)
12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법.
ER Schema (추가)
3 2 년 1 나만의 하나뿐인 달력~♥ sujin.
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
4. 관계 데이터베이스 (Relational Database)
SQL: 데이터 정의, 제약사항, 기본 질의와 갱신
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
질의처리 최적화 충북대학교 정보통신공학부 복경수
제 3 장 엔티티-관계(ER) 모델을 사용한 데이타 모델링
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
제 6 장 관계 대수와 관계 해석 Fundamentals of Database Systems
데이터베이스 (Database) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
제 13 장 관계 데이타베이스의 함수적 종속성과 정규화 기본 이론
9 장. 관계 데이타베이스의 함수적 종속성과 정규화 9.1 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 어느것을 기본으로 만들것인가
관계 대수.
5장. 데이터베이스 설계와 ER 모델 데이터베이스 설계 개념적 데이터베이스 설계와 물리적 데이터베이스 설계로 구분
5장. 관계대수와 관계 해석 관계 대수 릴레이션들을 다루는 연산들의 집합 검색 요구(질의)를 기술하는 데에 사용
08. 데이터 모델링.
데이터베이스 (Databases) ER 모델을 사용한 데이터 모델링 문양세 강원대학교 IT대학 컴퓨터과학전공.
제 10 장 관계 데이타베이스 설계 알고리즘과 추가적인 정규형
1. 관계 데이터 언어 관계 대수 1) 관계대수 정의 ① 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 인 방법 ② 주어진 관계로 부터 원하는 관계를 얻기 위해 연산자와 연산 규칙을 제공하는 언어 ③ 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가.

데이터베이스 (Databases) 관계 데이터베이스의 함수적 종속성과 정규화 문양세 강원대학교 IT대학 컴퓨터과학전공.
제7장 SQL-99: 스키마 정의, 제약조건, 질의어, 뷰
제 3 장 관계 데이타 모델과 관계 데이타베이스 제약조건
C#.
제 7 장 엔터티-관계를 사용한 개념적 데이타 모델링
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
관계 데이터 모델과 관계 데이터베이스 제약 조건
4 장. 관계 데이터 모델과 관계 데이터베이스 제약조건
ER-관계 사상에 의한 관계 데이터베이스 설계
데이터베이스 (Database) SQL-99: 스키마 정의, 기본 제약조건, 질의어 문양세 강원대학교 IT대학 컴퓨터과학전공.
데이터베이스 설계도구 ERwin 사용법(Erwin 4.1.4)
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
관계 데이타 모델과 관계 데이타베이스 제약조건 충북대학교 구조시스템공학과 시스템공학연구실
Database Management System
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
문성우 SQL 실습 Part Ⅰ 문성우.
최근의 취업률 / 실업률 추이 취업률 실업률 취업자 증가수 JUL % 10 % 100만 명 50 % 5 %
제 3 장 관계 데이터 모델 1. 개요 2. 기본 개념 3. 관계 데이터 제약.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
데이터베이스 (Database) 관계 대수와 관계 해석 (Part 1) 문양세 강원대학교 IT대학 컴퓨터과학전공.
Chapter 10 데이터 검색1.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
제 4 장 Record.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
 6장. SQL 쿼리.
13. 포인터와 배열! 함께 이해하기.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건. CHAPTER 4 관계 데이터 모델과 관계 데이터베이스 제약조건.
Presentation transcript:

제 4 장 관계 데이타 모델과 관계 데이타베이스 제약조건 제 4 장 관계 데이타 모델과 관계 데이타베이스 제약조건 Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe Copyright© 2004 황규영 홍의경 음두헌 박영철 김진호 조완섭

Fundamentals of Database Systems 내 용 4.1 관계모델의 개념 4.2 관계 제약조건과 관계형 데이타베이스 스키마 4.3 갱신 연산과 제약조건의 위반 처리 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.1 관계모델의 개념 관계 모델에서 데이타베이스는 릴레이션(테이블)들의 모임으로 표현됨 릴레이션은 투플 (행, 레코드)들의 집합으로 표현됨 투플은 애트리뷰트 (컬럼, 필드, 혹은 속성)들로 구성됨 ER 모델과의 비교 행 : 엔티티 혹은 관계에 해당하는 사실을 표현함 열 : 애트리뷰트들을 표시함 관계 모델의 용어 행 : 투플 열 : 애트리뷰트(속성) 테이블 : 릴레이션 Ch6 Fundamentals of Database Systems

[그림 4.1] STUDENT 릴레이션의 애트리뷰트와 투플들 Benjamin Bayer Katherine Ashly Dick Davidson Charles Cooper Barbara Benson 305-61-2435 381-62-1245 422-11-2420 489-22-1100 533-69-1238 Name SSN HomePhone Address OfficePhone Age GPA 373-1616 375-4409 null 376-9821 839-8461 2918 BlueBonnet Lane 125 Kirby Road 3452 Elgin Road 265 Lark Lane 7384 Fontana Lane 749-1253 19 18 25 28 3.21 2.89 3.53 3.93 3.25 릴레이션의 이름 애트리뷰트 투플 애트리뷰트의 값 애트리뷰트 이름 [그림 4.1] STUDENT 릴레이션의 애트리뷰트와 투플들 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.1.1 도메인, 투플, 애트리뷰트, 릴레이션 릴레이션과 연관된 용어들 도메인(domain): 원자 값들(atomic values)의 집합 USA_phone_numbers : 미국에서 사용하는 10자리 전화번호들의 집합 Names : 개인의 이름들의 집합 Age : 16~60 사이의 사원들의 나이(정수) => 도메인은 실제 데이터 타입으로 명시함 (int, char(10), …) 릴레이션 스키마(Relation schema) 릴레이션 이름 R과 애트리뷰트 Ai 들의 집합으로 R(A1, A2, ..., An) 로 표기함 예: STUDENT(Name,SSN,BirthDate,Addr) 릴레이션의 차수(degree): 릴레이션의 애트리뷰트 갯수 릴레이션 R(A1, A2, ..., An)의 투플 t : n-투플이라고 부름 값들의 (순서화된) 집합 t = <v1, v2, ..., vn>; 값 vi는 dom(Ai)의 한 원소임; R에 대한 릴레이션 혹은 릴레이션 인스턴스(Relation instance) r(R) 투플의 집합; r(R) = {t1, t2, ..., tm} r(R) ⊆ dom(A1)×...× dom(An) // r(R) 은 실세계의 특정 상태를 반영 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.1.2 릴레이션의 특성 릴레이션에서 투플의 순서는 의미가 없음 집합에서 원소의 순서가 무의미한 것과 마찬가지 임 각 투플 내에서의 값들의 순서 n-투플은 n 개 값의 리스트이며, 한 투플 내에서 값들의 순서는 중요함 (리스트에서 원소의 순서는 중요한 의미를 가짐) 그러나 각 애트리뷰트와 값이 서로 대응될 수 있다면 애트리뷰트 값들의 순서는 중요하지 않을 수 있음; 예를들어, 하나의 투플을 (<애트리뷰트>, <값>) 쌍들의 집합으로 간주하면 애트리뷰트와 값은 서로 대응될 수 있으며, 값의 순서는 중요하지 않음 투플 내의 필드값 나눌 수 없는 원자 값들(atomic values)임 값을 알 수 없거나 해당되는 값이 없을 때에는 null 이라는 특수 값을 사용함 ER 모델에서의 다치 애트리뷰트나 복합 애트리뷰트는 관계모델에서는 허용되지 않음 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.1.2 관계 모델의 표기 차수가 n인 릴레이션 스키마 R은 R(A1, A2, ..., An)으로 표기한다. 릴레이션 r(R)의 n-투플 t는 t = <v1, v2, ..., vn>으로 표기한다. 여기서 vi는 애트리뷰트 Ai의 값이다. t[Ai] 또는 t.Ai는 t에서 애트리뷰트 Ai의 값 vi를 가리킨다. 투플 t의 구성 요소 값(component value)을 t[Ai] = vi (투플 t에 대한 애트리뷰트 Ai의 값)로 표기한다. 마찬가지로, t[Au, Av, ..., Aw]는 애트리뷰트 Au, Av, ..., Aw 의 값을 포함하는 부(sub)-투플을 가리킨다. 대문자 Q, R, S 등은 릴레이션 이름을 나타낸다. 소문자 q, r, s 등은 릴레이션 상태를 나타낸다. 소문자 t, u, v 등은 투플을 나타낸다. 일반적으로, STUDENT처럼 릴레이션 스키마의 이름은 릴레이션의 현재 투플들의 집합, 즉 현재의 릴레이션 상태를 가리키고, 반면에 STUDENT(Name, SSN, ...)는 릴레이션 스키마를 가리킨다. 서로 다른 릴레이션에서 동일한 이름의 애트리뷰트를 사용할 수 있으며, 이 경우 애트리뷰트 이름 앞에 릴레이션 이름을 붙여서 서로를 구분한다. STUDENT.Name, Faculty.name, Employee.name Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.2 관계 제약조건과 관계형 데이타베이스 스키마 제약조건은 모든 릴레이션 인스턴스들이 만족해야 하는 조건임 주요 제약조건 도메인 제약 조건(domain constraints) 키 제약조건(key constraints) 엔티티 무결성 제약조건(entity integrity constraints) 참조 무결성 제약조건(referential integrity constraints) 이 절의 구성 4.2.1 도메인 제약조건 4.2.2 키 제약조건 4.2.3 관계 데이타베이스 스키마와 무결성 제약조건 4.2.4 엔티티 무결성 제약조건, 참조 무결성 제약조건, 외래키 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.2.1 도메인 제약 조건 각 애트리뷰트 A의 값은 반드시 A의 도메인 dom(A)에 속하는 원자값이어야 함 도메인과 관련된 데이터 타입 정수, 실수와 같은 표준 숫자형 문자, 고정길이 문자열, 가변길이 문자열 날짜, 시간 화폐단위 메모 등 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.2.2 키 제약조건과 널 R의 수퍼키(superkey) R의 애트리뷰트 집합 SK로서 다음의 성질을 만족해야 함 모든 유효한 릴레이션 인스턴스 r(R)에서 어떠한 두 투플도 동일한 SK 값을 갖지 않아야 함 ; 즉, r(R) 내의 임의의 서로 다른 두 투플 t1과 t2에 대해 t1[SK] ≠ t2[SK]이어야 함 R의 키(key) “최소” 수퍼키; 즉, 수퍼키들 중에서 수퍼키 K를 구성하는 어느 한 애트리뷰트라도 빠지면 수퍼키가 될 수 없는 수퍼키 K를 의미함 예제: CAR 릴레이션 스키마 CAR(State, Reg#, SerialNo, Make, Model, Year)는 두개의 키 Key1 = {State, Reg#}, Key2 = {SerialNo}를 가지며, 이들은 동시에 수퍼키이다. {SerialNo, Make}는 수퍼키이나 키는 아니다. 기본 키 (primary key) 릴레이션이 여러 개의 후보키(candidate key)를 가지면 이중 하나를 임의로 선택하여 기본키(primary key)로 지정함 기본키를 구성하는 애트리뷰트는 밑줄로 표시함 애트리뷰트의 값으로 널의 허용 여부도 중요한 제약 조건임 Ch6 Fundamentals of Database Systems

4.2.3 관계 데이타베이스와 관계 데이타베이스 스키마 관계형 데이타베이스 스키마 동일한 데이타베이스에 속하는 릴레이션 스키마들의 집합 S와 무결성 제약조건 IC로 구성됨 릴레이션 스키마 집합 S를 데이타베이스 이름이라고 정의함 S = {R1, R2, ..., Rn} 데이타베이스 스키마 S의 관계 데이타베이스 상태 (혹은 인스턴스) 릴레이션 상태들의 집합 예제 Company = {Employee, Department, Dept_locations, Projects, Works_On, Dependent}는 관계 데이타베이스 스키마이고 (그림 6.5), 그림 6.6은 Company 스키마에 해당하는 관계 데이타베이스 상태를 보여준다 Ch6 Fundamentals of Database Systems

[그림 4.5] 기본키에 밑줄을 그은 COMPANY 관계 데이타베이스 스키마 FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO EMPLOYEE DNAME DNUMBER MGRSSN MGRSTARTDATE DEPARTMENT DLOCATION DEPT_LOCATION PNAME PNUMBER PLOCATION DNUM PROJECT ESSN PNO HOURS WORKS_ON DEPARTMENT_NAME DEPENDENT RELATIONSHIP [그림 4.5] 기본키에 밑줄을 그은 COMPANY 관계 데이타베이스 스키마 Ch6 Fundamentals of Database Systems

[그림 4.6] COMPANY 스키마의 관계 데이타베이스 상태 EMPLOYEE FNAME John Franklin Alicia Jennifer Ramesh Joyce Ahmad James MINIT B T J S K A V E LNAME Smith Wong Zelaya Wallace Narayn English Jabbar Borg SSN 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 BDATE 09-JAN-55 08-DEC-45 19-JUL-58 20-JUN-31 15-SEP-52 31-JUL-62 29-MAR-59 10-NOV-27 ADDRESS 731 Fondren, Houston, TX 638 Voss, Houston, TX 3321 Castle, Spring, TX 291 Berry, Bellaire, TX 975 Fire Oak, Humble, TX 5631 Rice, Houston, TX 980 Dallas, Houston, TX 450 Stone, Houston, TX SEX M F SALARY 30000 40000 25000 43000 38000 55000 SUPERSSN null DNO 5 4 1 DEPARTMENT DNAME Research Administration Headquarters DNUMBER MGRSSN MGRSTARTDATE 22-MAY-78 01-JAN-85 19-JUN-71 DEPT_LOCATIONS DLOCATION Houston Stafford Bellaire Sugarland [그림 4.6] COMPANY 스키마의 관계 데이타베이스 상태 Ch6 Fundamentals of Database Systems

[그림 4.6] COMPANY 스키마의 관계 데이타베이스 상태 (cont.) PROJECT PNAME ProductX ProductY ProductZ Computerization Reorganization Newbenefits PNUMBER 1 2 3 10 20 30 PLOCATION Bellaire Sugarland Houston Stafford DNUM 5 4 1 WORKS_ON ESSN 123456789 666884444 453453453 333445555 999887777 987987987 987654321 888665555 PNO 1 2 3 10 20 30 HOURS 32.5 7.5 40.0 20.0 10.0 30.0 35.0 5.0 15.0 null DEPENDENT ESSN 333445555 987654321 123456789 DEPENDENT_NAME Alice Theodore Joy Abner Michael Allice Elizabeth SEX F M BDATE 05-APR-76 25-OCT-73 03-MAY-48 29-FEB-32 01-JAN-78 32-DEC-78 05-MAY-57 RELATIONSHIP DAUGHTER SON SPOUSE [그림 4.6] COMPANY 스키마의 관계 데이타베이스 상태 (cont.) Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.2.4 엔티티 무결성, 참조 무결성 제약조건, 외래키 엔티티 무결성 제약 조건 어떠한 기본 키 값도 널 값을 가질 수 없다는 제약 조건임 기본키가 각 투플들을 식별하는 데에 이용되기 때문임 참고: R의 기본키에 속하지 않는 애트리뷰트들도 null 값을 가질 수 없도록 제한할 수 있음; 릴레이션의 속성을 정의할 때 not null임을 명시 참조 무결성 제약 조건 하나의 릴레이션 R에서 속성 F의 값으로 다른 릴레이션 S의 기본 키 P 값을 참조하는 경우에 R과 S는 참조 무결성 제약 조건을 가진다고 함; 이 때, F의 값은 널을 가질 수 있음 t1[F] = t2[P]이면 R의 투플 t1이 S의 투플 t2를 참조한다(reference)고 하며, F를 외래키 (foreign key)라고 부름; R을 참조한(referencing) 릴레이션, S를 참조된(referenced) 릴레이션이라고 부름 앞의 제약조건들은 하나의 릴레이션에 대한 제약 조건이지만, 참조 무결성은 두 릴레이션에 대한 제약조건임을 유의해야 함 관계형 데이타베이스 스키마에서 참조 무결성 제약조건은 R1.FK에서 R2로의 화살표로 표시함 Ch6 Fundamentals of Database Systems

외래키는 동일한 릴레이션의 애트리뷰트를 참조할 수도 있음 EMPLOYEE FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO DEPARTMENT DNAME DNUMBER MGRSSN MGRSTARTDATE DEPT_LOCATION DNUMBER DLOCATION PROJECT PNAME PNUMBER PLOCATION DNUM WORKS_ON ESSN PNO HOURS DEPENDENT ESSN DEPARTMENT_NAME SEX BDATE RELATIONSHIP [그림 4.7] COMPANY 데이타베이스 스키마에 표시된 참조 무결성 제약 조건들 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.3 갱신 연산과 제약조건 위반의 처리 릴레이션에 대한 기본 갱신 연산들 삽입, 삭제, 수정 갱신 연산을 실행하는 경우 스키마에 정의된 무결성 제약 조건을 위반하지 않아야 함 삽입연산 – 네가지 제약 조건을 위반할 수 있음 삽입되는 투플 t에서 애트리뷰트의 값이 도메인에 없으면 도메인 제약 조건을 위반함 t에서 기본 키의 값이 다른 투플에서 이미 존재한다면 키 제약 조건을 위반하며, 널이면 엔티티 제약 조건을 위반함 t에서 외래 키의 값이 참조되는 릴레이션의 키 값으로 존재하지 않는다면 참조 제약 조건을 위반함 제약 조건을 위반하면 그 삽입을 거부하거나 그 위반 사실을 사용자에게 알려야 함 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.3 갱신 연산과 제약조건 위반의 처리 삭제연산 투플이 삭제되는 경우 다른 테이블에서 참조하고 있는지 검사하여 그렇지 않는 경우에만 삭제함 (참조 무결성) 삭제 연산이 참조 무결성 제약 조건을 위반하는 경우 취할 수 있는 세가지 옵션 삭제를 거부 삭제되는 투플을 참조하는 투플들까지 모두 삭제 (연쇄 삭제) 삭제되는 투플을 참조하는 투플에서 외래키 값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경 위의 세가지 옵션 중 사용자가 응용의 특성에 적합한 것을 선택하도록 하는 것이 바람직함 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 4.3 갱신 연산과 제약조건 위반의 처리 갱신연산 갱신 연산은 기본적으로 “삭제 후 삽입” 연산으로 간주할 수 있으므로 삽입과 삭제시의 문제점이 모두 나타남 기본 키나 외래키가 아닌 애트리뷰트 값의 변경은 문제가 없음 Ch6 Fundamentals of Database Systems

Fundamentals of Database Systems 요 약 관계모델의 개념 용어 정의 관계 제약조건과 관계형 데이타베이스 스키마 도메인 제약 조건, 키 제약조건, 엔티티 무결성 제약조건, 참조 무결성 제약조건 스키마는 릴레이션의 집합과 제약 조건 집합으로 구성됨 갱신 연산과 제약조건의 위반 처리 릴레이션에 투플을 삽입하거나 삭제 변경할 때 제약조건을 만족하는지 검사 Ch6 Fundamentals of Database Systems