데이터베이스관리시스템의 활용

Download Report

Transcript 데이터베이스관리시스템의 활용

Database 활용을 위한 기초 이론
1.
2.
3.
Database의 개요
Data Modeling
Database programming의 원리

강의제목
◦ Data Modeling

목표
◦ Database 구축을 위해 요구사항분석, 개념적설계 (Conceptual Design), 논리적
설계 (Logical Design), 물리적설계 (Physical Design), 유저인터페이스설계
(User Interface Design), 시스템 구현 과정을 학습

목차
◦ Data Model의 정의 및 종류
◦ Entity Relationship (ER) Model
 ER 스키마 작성
 Keys
◦ Relational Model
 ER 스키마를 Relational 스키마로 변환 규칙
 정규화 원리
◦ Object-Oriented Model
◦ Database 설계 절차
 요구사항 분석서 예제 포함

정의
◦

“real world” (실세계)의 묘사에 유용하게 쓰임
◦

데이터와 그들간의 관계, 서로의 의미, 제약조건 등을 어떻게 나타낼 것인가에 대한 개념적인(논리적인) 틀.
user, 시스템분석, DBA등의 의사소통에 중요한 도구로 이용되고 있음
주의: 구현 모델이 아님
◦
ER 모델을 기반으로 하는 DBMS는 없음
실세계 (자전거)를 컴퓨터에서
표현하고자 할 때, 요구사항
(DB구축 목적)과 관련된 부분을
identify하는 것이 중요함
* 실세계의 반영
실세계를 반영한 데이터모델은
요구사항을 반영한 ‘데이터’와
‘관계(의미)’를 표현한 것임
Frame size
wheel size
gear
material . . .

Data Model의 종류
◦
◦
◦
Entity Relationship Model (개체관계형 모델)
Relational Model (관계형 모델)
Object-Oriented Model (객체지향 모델)
◦
기타
 Hierarchical Model (계층적 모델)
 Network Model (네트워크 모델)
오늘날 거의 사용되지 않는 모델임
3

정의
◦ 모든 것을 Entity (개체)와 그들 간의 relationship (관계)으로만 표현
 Entity: 실세계에 실제로 또는 개념적으로 존재하는 것을 의미하며, 그것의 특성
을 설명하는 속성(attribute)들을 가짐
 Relationship: Entity들이 상호 연결된 관계
크기
‘Wheel’ 개체와 ‘Frame’
개체와의 관계
(Relationship)을
‘connect’로 표현
재질
Wheel
connect
재질
크기
Frame
4

정의
◦ 모든 데이터는 relation(table)에 의해 표현
 보통 n-ary Relation을 의미하며, 이는 결국 Set (집합)임
 예를 들어, 어떤 relation이 학생성명, 과목명, 시험점수 라는 attribute (속성)을 가질
때, 아래와 같은 relation을 만들 수 있음.
 {<홍길동, 수학, 98>, <김철수, 수학, 90>, <홍길동, 영어, 88>, <김철수, 영어, 95>}

여기서, ‘홍길동’은 ‘수학’ 과목에서 98점을 받았는데, 이는 일종의 relation을 가지는 것임
◦ 데이터 중복성 방지를 위해 relation normalization (정규화)을 수행
◦ 용어
 Relation (릴레이션): table
 Tuple (튜플): record, row
 Attribute (속성): column
부품번호 부품 타입 크기 재질 기타
100
Frame
10
A
101
Wheel
20
B
102
Line
1.5
C
103
chain
3.4
D
5

정의
◦ 유일한 식별, 내포된 성질, 그리고 다른 객체나 자기 자신과 상호 작용(관계)을 할 수 있는 실세계 개체를 추상적
으로 표현
◦

Entity와 유사한 개념이나 능동성 (즉, behavior)을 포함

Attribute: object의 state를 표현
 Action: message 에 답하는 procedure
Attribute
◦ 객체의 상태 표현
◦ 하나의 데이터 타입
Object의 상태
◦ 한 시점에서 객체의 attribute값들의 집합
◦ attribute변경하기 위해서는 그 객체에게 message를 보냄
Method
Shift
size
Gears
material
Method
Move


Method
Update

Objects = Attribute + action(behavior)
Method
Repair
Method
◦ attribute값 변경 및 검색
◦ Object의 behavior표현
◦ Object의 상태값 접근
◦ 수신 Object, method 이름, 입력매개변수를 지정
6

Entity (개체)란?

Entity Set

Attributes
◦ 하나의 Entity는 다른 개체와 구별되는 존재하는 대상을 의미
 예) 특정의 사람, 특정의 기업, 특정의 사건 등
◦ 공통 속성을 가지는 동일한 타입의 entity 집합
 예) set of all persons, companies, trees, holidays
◦ 결국, 하나의 데이터베이스는 여러 타입의 entity 집합과 entity 집합 간의 relationship
으로 표현
◦ Entity set 내부의 모든 원소 (entity)들이 공통으로 가지는 attribute를
가짐
 예) 사람 = (‘주민등록번호’, ‘이름’, ‘주소’, ‘전화번호’)
 예) customer = (customer-id, customer-name, customer-street, customer-city)
 예) loan = (loan-number, amount)
◦ Attribute types
 Simple and Composite attributes.
 Single-valued and Multi-valued attributes

예) multi-valued attribute: phone-numbers
 Derived attributes: 다른 attribute로부터 계산

예) 나이 : 생년월일 attribute로부터 계산
7

Entity Set의 예
customer-id
customer- customer- customername
street
city
loan- amount
number
(Hayes, L15) 
depositor
Depositor라는 relationship은
‘access-date’이라는 attribute
를 가짐

Relationship Set
◦
R elationship set은 두 개 이상의 entity간의
mathematical relation
 {(e1, e2, … en) | e1  E1, e2  E2, …, en  En}
 여기서, (e1, e2, …, en) 은 하나의 relationship 원
소이며, 여러 entity간의 연관 관계를 의미
 Attribute를 가질 수 있음
1-to-Many 관계
8

Mapping Cardinalities (대응관계)
◦

Relationship set를 통해서 연관된 두 개 (또는 두 개 이상) entity들이 Express the number of
entities to which another entity can be associated via a relationship set.
세가지 타입이 존재
◦
◦
◦
1-to-1
1-to-N (Many)
N (Many)-to-M (Many)
Many-to-Many 관계
Many-to-1 관계
1-to-1 관계
1-to-Many 관계
9
Entity Set에 존재하는 모든
entity가 Relationship R에 연관
되는 경우를 의미
Generalization 관계에서 상위
entity set의 모든 entity가 하위
entity에 모든 참가하면 “Total”,
참가 중복이 없으면 “Disjoint”
대응관계를 표현하는
방법 3가지 있음.
10
점선밑줄은 Weak Entity Set의
discriminator (구별자)를 표시함
Weak Entity Set를 표시함
Relationship Set에 존재하는
attribute
Derived attribute를 표시함
Multi-valued attribute를 표시함
밑줄표시는 Key를 표시함
‘employee’ Entity Set의 entity
들이 ‘works-for’ 관계를 맺을 때
role (역할)을 명시적으로 표시함
11

Weak Entity Set
◦ 이 Entity Set의 존재가 이와 relationship을 가지고 있는 Entity Set의 존재에 의
해 결정되는 것으로서, primary key를 가지지 않음.
◦ Relationship은 total participation, 1-to-Many relationship을 가짐
◦ Primary key를 가지지 않지만, 연관되는 entity가 결정되면 알 수 있는 entity를
알 수 있도록 해주는 attribute (또는 attribute 집합)을 discriminator (또는
partial key)라고 함.
Discriminator를 표시함
 예) 고유강좌 – 개설강좌
Payment 관계형 테이블은
primary key로서 (loan_number,
payment_number)를 가져야 함
Total participation을 의미함. 즉
‘Payment’ Entity set에 존재하는
모든 entity들이 ‘loan’ Entity Set
과 관계를 맺음
Weak Entity Set를 표시함
12

Specialization (또는 Generalization)
◦ 특정 entity set의 개념보다 세부화된 entity set를 정의할 수 있음
◦ Attribute 계승: 상위 entity set의 모든 attribute들은 하위 entity set의 attribute로 계승
됨
Generalization

유형


Specialization
Disjoint vs. Overlapping

상위 entity set에 존재하는
entity들이 하위 entity set에
중복 안되는지, 또는 되는지를
구별함
Total vs. Partial participation

상위 entity set에 존재하는
entity들이 하위 entity set에
모두 존재하는지, 또는 안 되는
것이 존재하는지를 구별
13


Keys: 하나의 entity를 식별할 수 있는 attribute (또는 attribute 집합)를 의미
종류
◦
◦
◦
◦
◦
Superkey (수퍼키)
 entity set에서 하나의 entity를 유일하게 지정할 수 있는 attribute또는 attribute set
 예) 고객 entity set의 ‘주민등록번호’, 학생 entity set의 {학과, 이름, 학번}
Candidate key (후보키)
 부분집합을 가지는 않는 superkey를 의미
 예) 고객 entity set의 ‘주민등록번호’, 학생 entity set의 {학번}
Primary key (주키)
 candidate key중 주된 key로 사용되도록 선택된 것(designer가 선택)
Composite key
 attribute가 복합되어 이루어진 키
 예)
Foreign Key (외래키)
 필드값이 pointer의 역할

예) foreign key “교수번호”가 pointer
 교수테이블에 “102”가 반드시 존재해야
 No dangling reference !
이름
김동군
김한중
정재훈
정윤나
학번
학과
98301-001 전산과학과
98301-002 수학과
98301-003 통계학과
97325-005 통계학과
교수번호
100
101
102
102
학번
시간
98301-001 월
98301-002 화
98301-003 월
97325-005 금
교수번호
100
101
102
이름
김직순
장재용
심대의
학과
전산과학과
수학과
통계학과
장소
1-101
1-101
1-002
1-102
14
산출물
요구사항분석보고서
• 구현 목적에 따라 구체적인 요구사항 작성
• 기능적 측면, 사용시나리오 포함
Entity Relationship (ER) Schema
• 요구사항을 토대로 entity 및 Entity간의
관계를 정의
Relational Schema
• ER schema를 바탕으로 변환규칙에 따라
Relation schema의 작성
• 정규화 (normalization)을 통한 데이터 중복성
최소화
Physical Schema
• Indexing, Tuning, Transaction 설계
Application System
• SQL언어와 이를 담는 Host language를 이용하여 코딩
• Host language: C, Java, Perl, PHP, JSP, ASP 등
15
소프트웨어시스템실험 보고서
제목: 소규모 조직에서의 자료,지식 관리를 위한
지식 관리 시스템(Knowledge Management System)
(1) 요구사항 분석서
1.
제목
국문명: 소규모 조직에서의 자료, 지식 관리를 위한 지식 관
리 시스템
영문명: Knowledge Management System
2.
팀 구성
김철수 (학번: 2000xxxxx)
담당교수: 김한준
담당조교: 김민경
소속학과: 전자전기컴퓨터공학부
제 출 자: 김철수 (2004xxxxx)
이기수 (2004xxxxx)
제출일자: 2007년 10월 ??일
연락처: [email protected], 011-111-2222
이기수 (학번: 2000xxxxx)
연락처: [email protected] 011-333-2222)
3.
개요
4.
요구사항
① 개발 시스템의 목적
<사용자로부터의 요구사항, 시스템 또는 데이터에 대한 제
한사항, 사용자 환경의 특징, 시스템의 특징 등을 기술>
② 개발 시스템의 실용적 가치
<이 내용으로부터 ER스키마를 작성하기 위한 entity, relati
onship을 도출할 것이기 때문에, “정확하고 정제된 용어
를 사용하여 기술하며, 한 항목에는 단일 내용을 기술함
>
<본 시스템이 사용자에게 주는 편리성, 의미성, 실용성 등을
기술함>
예)본 시스템은 소규모 조직에서 발생(또는 수집)한 자료 및
지식을 체계적으로 관리하여 그 자료, 지식을 공유함으
로써 업무의 효율을 높힐 수 있다. … (중략) …
③ 경제적 가치
<본 시스템을 상품화할 수 있는 부분과 그것의 상품적 가치
를 기술함>
④ 차별성 및 독창성
<유사 시스템과 비교하여 우수/차별성 등을 기술함>
<유사 시스템에 대한 survey가 필요하다면 삽입하기 바람>
(예제)
◦고객은 100명 인원 안팎의 학교 내부의 과(Dept.) 또는 소규모의 벤처,
또는 일정한 스터디를 위해 모여있는 커뮤니티이다.
◦고객은 그들 자신의 자료를 데이터베이스로 체계적으로 관리하기를 원
하며 100명 안팎의 소규모 인원이기 때문에 최대 동시 접속자(Current
User 또는 Client)는 10명 안팎, 평균 동시 접속자는 3명정도이며, 페이
지를 요청하고 데이터베이스와 동시에 통신하고 있는 활성 사용자(Acti
ve User 또는 Client)는 최대 3명이다.
◦사용자들은 관리자가 직접 자료의 분류 형태를 결정할 수 있기를 원하
고 축적되어 있는 자료에 대한 원활한 검색을 위하여 특화된 검색엔진을
필요로 한다. 예를 들어, 대부분의 정규식(Regular Expression) 이나 문
자화된(And,Or,그리고,또는 등의 단어들) 구분자들을 처리 할 수 있는
형태이다. 관리자만의 Admin Tool을 일정한 형태로 만들어주기를 원
하며 보통 수준이상의 보안을 요구한다.
◦한 번에 업로드될 수 있는 자료의 최대 수는 5개까지이며, 사용자 정보
테이블은 따로 구성되어 데이터 정보 테이블과 관련을 맺고 (예를 들어
Cascading 이 가능하도록) 있기를 바란다.
◦데이터는 하나의 테이블에서 관리되며 데이터에 관한 추가적인 부연
설명이라든가, 검색어들은 관련을 맺고 있는 테이블에서 따로 관리된다.
또한 사용자들의 정보 또한 하나의 테이블에서 관리되며 현재 접속중인
사용자들에 대한 파악 및 사용자들의 접속 정보도 관리하여야 한다.
◦… (중략) …
◦
5.
기능
③ 업로드 기능: 사용자들이 가지고 있는 높은 퀄리티
의 자료들을 KMS를 통해 공유함으로써 진정한 의미
의 정보의 공유를 실현하게 한다.
<요구사항에 입각해서 입력/검색/수정 등에 해당하는
기능을 “계층적으로” 완벽히 망라>
④ 현재 사용자(접속자) 리스팅: 현재 접속하고 있는 인
원을 출력하고 또한 그 인원들에 대한 접속 기록을
보관함으로써 사용자들의 사용 실태를 파악할 수 있
다.
(예제)
① 자료 검색기능: 접속자가 원하는 정보를 빨리 찾을
수 있도록 데이터를 카테고리(분류) 별로 분류하고
그에 따라 검색할 수 있게 하며, 기본적인 검색 키워
드, 정규식을 지원하며 데이터를 최대한 빠르게 검
색할 수 있게 배려한다.
사용자 정보 검색
지식 정보 검색
…
② 관리자 기능: 게시물, 분류 생성, 삭제, 그리고 사용
자 정보에 관한 열람권을 보장함으로써 사용자들에
대한 권한 관리, 그리고 올바르지 못한 자료, 분류가
잘못된 자료들을 찾아 수정하고 사용자들에게 질 높
은 자료를 볼 수 있는 권리를 보장한다.
⑤ 자료 입력기능: … (중략) …
6.
사용 시나리오
<사용자 입장에서 본 시스템을 사용하는 프로세스를 상세히
기술>
<필요하다면 그래픽유저인터페이스 GUI 화면을 작성, 삽입
하기를 권고>



목표
◦ 데이터베이스의 구조, 의미,관계성, 그리고 제약조건을 기술 => Entity Relationship (ER)
스키마의 작성
ER Schema (Diagram)의 구성
◦ Entity : 현실세계의 객체 → “사각형”으로 표시
◦ Relationship : 둘 이상 entity간의 관계 → “마름모”로 표시
◦ Attribute: entity, relationship의 성질 → “작은 원”으로 표시
ER Schema의 예
학사DB를 위한
Banking DB를 위
한 ER 스키마
ER스키마
19

목표
◦ Relational Table을 정의

설계 방법
◦ 개념적 설계 단계에서 도출된 ER 스키마를 바탕으로 relational schema를 생성함
(변환 규칙을 숙지)
◦ 정규화 (Normalization) 이론에 따라, 데이터 중복성을 최소화하는 작업을 수행
 3rd normal form (3차 정규형), BCNF (Boyce Codd Normal Form) 형태인지
를 검증하여, 오류가 있을 시는 테이블 분할 원칙에 따라 분할
◦ Normal Form에 대한 기초 설명
 BCNF
 A relation schema R 이 있을 때, attribute 집합 (, )에서 가  를 결정할 수 있을
때, 가 R의 superkey가 되는 형태
 3NF (3rd normal form, 3차 정규형)
 A relation schema R 이 있을 때, attribute 집합 (, )에서 가  를 결정할 수 있을
때, 가 R의 superkey가 되는 형태가 되거나,
 또는,  –  에 존재하는 attribute A가 R의 candidate key가 되는 형태
 BCNF가 3NF보다 제약이 강하며, 데이터 중복성이 적음
 많은 경우, ER 스키마를 변환규칙에 따라 변환한 relational schema는 BCNF (또는
3NF) 형태가 되지만, 그렇지 않은 경우도 있어 검증이 필요함.

Entity 변환

◦ 각 entity는 relation(관계형 table)
로 변환
◦ entity의 attribute와 primary key
는 관계형 table의 attribute와
primary key가 됨
Relationship 변환: 1대1 관계
◦ 하나의 relation으로 압축
 두 entity가 같은 primary를 가지는 경
우
◦ 관계성을 흡수한 두 개의 relation
생성
 두 entity가 서로 다른 primary key를
가지는 경우
주민등록번호
회사원
고객번호
고객번호
이름
탁송주소
이름
봉급
회사원(주민등록번호, 이름, 봉급)
고객
1
요구
1
물품탁송
고객물품(고객번호, 고객이름, 탁송주소)
21

Relationship 변환: 1대1 관계

◦ 하나의 relation으로 압축
 두 entity가 같은 primary를 가지는 경
우
◦ 관계성을 흡수한 두 개의 relation
생성
Relationship 변환: 1대N 관계
◦ (1)쪽의 entity의 primary key인 E1
의 primary key가 (N)쪽 entity인 E2
의 한 attribute (또는 attribute의 셀)
으로 첨가되고, 그 attribute가 foreign
key가 됨
 두 entity가 서로 다른 primary key를
가지는 경우
여주민등록번호
남주민등록번호이름
도시명
인구
이름
남자
1
결혼
1
여자
도명
도시
N
소속
1
도
도지사
인구
남자(남주민등록번호, 이름, 여주민등록번호)
도시(도시명, 인구, 도명)
여자(여주민등록번호, 이름)
도(도명, 도지사, 인구)
22

Relationship 변환: N대M 관계
◦ 별도의 relation을 생성하며, 한
entity의 primary key와 상대편
entity의 primary key로 구성되는
복합 key를 형성
학번
이름

Relationship의 변환: N-ary 관계
성
◦ N대M 관계성에서와 같은 변환 방법
◦ Relationship 에 참여한 N개 entity의 모
든 key를 상속받아 새로운 relation의
primary key로 사용
총평점
제품코드
학생(학번, 이름, 총평점)
학생
부품코드 설명
제품명
설명
제품
과목(과목번호, 과목명)
M
등록(학번, 과목번호, 학점)
부품
공급
공급량
등록
학점
공급자
N
과목번호
과목
과목명
공급자 코드
공급자명
주소
전화번호
제품(제품코드, 제품명, 설명)
부품(부품코드, 설명)
공급자(공급자코드, 공급자명, 주소, 전화번호)
공급(제품코드, 부품코드, 공급자코드, 공급량)
23

Relationship 변환: 순환관계성

◦ 두 attribute를 포함하는 새로운
relation을 생성
이름
Composite Attribute의 변환
◦ 복합 구조를 구성하는 최하위 attribute
를 상위개념의 attribute와 이름을 결합
구
예) 도
동
주소
생년월일
회사원
회사원
supervise
be_supervised
N
관리
1


주소 => (주소.도, 주소.구, 주소.동)
Multi-valued Attribute의 변환
◦ Entity E의 multi-valued attribute M을
별도의 E-M 관계형 테이블로 구성
사원번호
전화번호
회사원(이름, 생년월일, 관리자이름)
회사원-전화번호 (사원번호, 전화번호)
회사원
24

Generalization의 변환 (방법1)
◦
◦

상위수준의 entity에 대한 relational table을 생
성
하위수준의 각 entity에 대한 relational table을
생성하고, 그것의 상위수준 entity의 primary
key를 취함
주민번호
Person
◦
◦
성명
하위수준의 각 entity에 대한 relational table을
생성하고, 그것의 상위수준 entity의 모든
attribute를 취함
주민번호
Employee
Person
성명
주소
연봉
ISA
Customer
신용등급
◦
‘partial participation’의 경우 상위수준 entity set의
어떤 entity들은 하위 entity set에 속하지 않으므로,
반드시 상위수준의 entity set에 대한 관계형 테이블
을 생성함
단 점 : 상 위 수 준 의
attribute를 그대로 계승
하기 때문에 데이터중복
이 발생
ISA
Customer
상위수준의 entity에 대한 relational table을 생
성 또는 생성 안함

주소
단 점 : Customer 또 는
employee 개체를 접근
하기 위해서 두 개의 테
이블을 참조해야 함
신용등급
Generalization의 변환 (방법2)
Employee
Relational Schema

Person (주민번호, 성명, 주소)

Customer (주민번호, 신용등급)

Employee (주민번호, 연봉)
◦
Relational Schema

Person (주민번호, 성명, 주소)

Customer (주민번호, 성명, 주소, 신용등급)

Employee (주민번호, 성명, 주소, 연봉)
연봉