Entity-relation을 사용한 conceptual data modeling

Ch7 entity-relation를 사용한 개념적 데이터 모델링

7.1 DB 설계를 위한 고수준의 개념적 데이터 모델의 사용

1. 요구사항 수집 및 분석 : 요구사항(트랜잭션으로 구성), 검색과 갱신에 대한 연산들도 포함(diagram)
2.
개념적 설계 : 고수준의 개념적 data model을 사용하여 개념 schema(요구사항 간단히 기술)를 만든다.
3.
논리적 설계 : 상용 DBMS를 이용하여 DB를 실제로 구현 고수준 데이터모델을 구현 데이터모델로 변환
맵핑을 하고 정규화 과정을 통해 설계한다.
4.
물리적 설계 : DB file들에 대한 내부 저장 구조, 파일 구성, 인덱스, 파라미터 등을 명시 DB TR로 설계 구현

7.2 간단한 예제 DB응용

7.3 엔티티 타입, 엔티티집합, 에트리뷰트,

7.3.1 엔티티와 attribute
entity :
실세계에서 독립적으로 존재하는 실체(자동차, , 사원), entity를 기술하는 attribute들을 갖는다.
attribute : entity
를 기술하는 속성(이름, 나이, 주소, ) 여러 유형이있다 그유형은 아래로
복합 attribute : 더 작은 구성 요소(자체로 독립적인 의미를 갖음)들로 나눈다. 더 이상 나눌 수 없는 attribute를 단순 attribute라 한다. (복합 attribute를 세분화한게 단순 attribute)
단일값 attribute : 하나만 갖는 것,
다치 attribute : 여러 개의 값을 가질수 있는 attribute (집이 여러 개, 차가 여러 대)
저장 attribute : 유도 attribute가 유도를 받는 attribute
NULL : entity
의 특정 attribute에 적용할 값이 없는 것
복잡한 attribute : ()에 복합 attribute 를 넣고 {} 안에 다치 attribute를 나타냄으로 중첩을 표현

7.3.2 entity type, entity set, key, value set
entity type :
같은 attribute들을 갖는 entity의 집합, 이름과 attribute리스트로 기술
entity set :
임의의 시점에 DB내의 특정 entity type의 모든 entity 모임
entity type
에 속하는 entity들에 대한 중요한 제약조건은 attribute들에 대한 key, 유일함의 제약조건이 있다.
Key attribute : entity set
안에 entity마다 서로 다른 값을 가지는 attribute
weak entity type : key
를 갖지 않는 entity type
값집합(domain) : entity에서 해당 attribute가 가질수 있는 값들의 집합

Entity e에 대한 attribute A의 값을 A(e)로 표현한다.

7.4 관계, 관계 타입, 역할, 구조적 제약조건

7.4.1 관계 타입, 집합, 인스턴스
관계 : attribute끼리의 참조를 관계로 명시
관계타입 : entity type에 속하는 entity들 간의 관계집합, 관계 인스턴스들의 집합

7.4.2 관계 차수, 역할 이름, 순환적 관계
차수 : 관계 타입에 참여하고 있는 entity type들의 개수
Role name : entity type
에 속한 한 entity가 각 관계 인스턴스에서 가지는 역할을 강조
같은 entity type이 어떤 관계 타입에 두번 이상 참여하는 경우에는 각 참여하는 entity가 하는 역할의 의미를 구분하기 위해 역할 이름이 필수적이다 이런 관계타입을 순환적 관계라 한다.

7.4.3 이진 관계 타입에서의 제약조건
cardinality ratio : entity
가 참여할 수 있는 최대 관계 instance
참여 제약조건 : entity의 존재가 관계 타입을 통해 연관되어 있는 다른 entity에 의존하는이 여부를 명시, 이 제약조건은 각 entity가 참여할 수 있는 관계 인스턴스의 최소 수를 명시하며 최소 카디널리티 제약조건이라 함
참여 제약 조건에는 전체참여와 부분참여가 있다.
전체 참여 : entity들의 전체집합에 속하는 모든 entity가 반드시 다른 entity와 연관되어야 한다.(존재 종속성)
부분 참여 : 일부 entity들만 다른 entity들과 연관되어 있는 것
M:N
관계 타입에서는 참여 entity들의 조합에 의해서 결정되는 attribute들을 반드시 관계 attribute로 명시

7.5 weak entity type : 자신의 key attribute가 없는 entity type(key가 있으면 정규 attribute)
weak entity type
entity들은 그들의 attribute값들 중 하나를 통해 다른 entity type과 연계하여 식별하는데 그러한 다른 entity type을 식별 entity type이라 한다.이 두 type의 관계를 식별 관계라 한다. 항상 weak entity type은 식별 entity type에 전체 참여 제약조건(존재 종속성)을 가진다. 역은 성립하지 않는다.
일반적으로 부분키(점선)를 가지는데 부분키는 동일한 식별 entity에 연관되는 weak entity들을 서로 구분할 수 있는 attribute들이다.

'SW > Database MySQL' 카테고리의 다른 글

sql의 데이터 정의와 타입  (0) 2017.09.05
basic relation model (기본 관계 모델)  (0) 2017.09.05
Data model, schema, instance  (0) 2017.09.05
database 기초상식  (0) 2017.09.05
JOIN  (0) 2017.09.05

basic relation model (기본 관계 모델)

3.1 관계모델은 DB relation들의 모임으로 표현


3.1.1 domain, attribute, tuple, relation


Domain :
원자값(더 이상 나눠질수 없는 것)들의 집합, 해당 Domain이 속하는 값들의 datatype을 명시

NULL은 모든 domain의 멤버, 다른 attribute가 같은 domain을 갖을 수 있다. 구성요소 : 데이터타입, 형식, 이름


릴레이션 스키마 : R이라는 릴레이션 이름과, A_1 이라는 에티르뷰트(도메인과 같은 역할)들로 이루어진다.


릴레이션스키마의 릴레이션(relation state) : n-tuple들의 집합, 실세계의 특정상태에서 해당되는 tuple들만 반영


3.1.2 릴레이션의 특성


릴레이션에서 투플들의 순서는 존재하지 않지만 저장 순서는 존재한다.


투플 내에서의 값들과 순서와 릴레이션의 또 다른 정의 : 투플 내에서 값들의 순서는 중요하지 않다.


투플 내의 각 값은 원자값이다 => 1 정규형


NULL :
값을 모를 때, 가능하지 않은 값일 때,  이 투플에 그 attribute를 적용할수 없을 때 사용한다.


3.2 관계 모델 제약조건과 관계 DB 스키마


본질적 모델 기반 제약조건 : data model 자체에 존재하는 제약조건


스키마 기반 제약조건 : data modelschema에서 직접 표현 가능한 제약조건으로 DDL로 명시


응용 기반 제약조건 : schema에서 표현이 불가능한 제약조건으로 응용프로그램에 의해 표현


3.2.1 도메인 제약조건 : 각각의 투플 내에서 각각의 attribute의 값이 반드시 도메인에 속하는 원자값이여야 함


3.2.2 키 제약조건과 널 제약조건


형식 관계 모델에서 relation tuple들의 집합으로 정의


releation
의 모든 tuple도 중복되지 않아햐 한다. tuple마다 갖는 uniqueattributesuperkey라 한다.


유일성 제약조건 : super key가 같은 tuple은 존재하지 않는다.


모든 relation은 적어도 하나의 superkey를 갖는다.


KEY :
최소의 superkey


3.2.3 관계 DB, 관계 DB schema


관계DB는 서로 연관된 다수의 relation을 갖는다.


관계DB schema : relation schema들의 집합과 무결성 제약조건들의 집합이다.


관계DB state : relation state들의 집합


무결성 제약조건을 준수하면 유효한 상태 아니면 유효하지 않은 상태


무결성 제약조건은 DB schema에 명시되어있다


3.2.4 엔티티 무결성 제약조건, 참조 무결성 제약조건, 외래키


엔티티 무결성 제약조건 : 기본키는 null값이 될 수 없다. (기본키는 tuple들을 구별하는데 사용하기 때문)


참조 무결성 제약조건 : 두 릴레이션 사이에 명시되는 제약조건, relation에 있는 tuple이 다른 relation의 

tuple을 참조하려면 반드시 참조되는 tuple이 그 relation안에 존재 해야한다.


foreign key :
외래키가 되기 위해서는 참조 무결성 제약조건이 만족되어야 한다. 동일한 relation을 참조할 수 없다. 외래키는 자신의 relation을 참조할 수 있다.


외래키의 attribute는 기본키의 attribute와 동일한 doamin을 갖는다. -> 외래키는 참조한다.


현재 상태의 한 tuple 내의 외래키의 값은 현재상태의 어떤 tuple 내의 기본키와 일치하거나 null값을 가져아한다.


3.3 갱신 연산과 트랜잭션 그리고 제약조건 위반의 처리


관계 모델의 연산은 추출과 갱신(삽입, 삭제, 갱신 또는 수정)으로 나누어진다.


3.3.1      


삽입 연산은 relation R에 삽입한 tuple t에 대한 attribute값들의 리스트를 제공한다.


도메인 제약조건, 키 제약조건, 엔티티제약조건, 참조 제약조건 4가지를 위반할 수 있다. 기본은 거부


3.3.2 삭제 연산


참조무결성 제약조건 1개만 위반할 수 있다. 기본은 거부


3.3.3 갱신 연산


relation R
에 있는 tuple들 중에서 하나 이상의 attribute값을 변경하는데 사용



기본키나 외래키가 아닌 attribute의 갱신에는 아무런 문제가 없다, 데이터타입과 도메인이 정확한지 확인


3.3.4 트랜잭션 개념 : DB로부터 읽기, 삽입, 삭제, 갱신 같은 DB 연산을 수행하는 program

'SW > Database MySQL' 카테고리의 다른 글

Entity-relation을 사용한 conceptual data modeling  (0) 2017.09.05
sql의 데이터 정의와 타입  (0) 2017.09.05
Data model, schema, instance  (0) 2017.09.05
database 기초상식  (0) 2017.09.05
JOIN  (0) 2017.09.05

Data model, schema, instance

데이터 모델, 스키마, 인스턴스

2.1 데이터 모델, 스키마, 인스턴스
데이터 모델 : 필수적인 특징만을 강조하는 추상화를 위한 도구데이터 구조를 명시하기 위해 사용할 수 있는 개념들의 집합으로 대부분 검색과 갱신을하는 기본연산들을 포함한다.
DB
구조 : 데이터 타입, 관계, 제약조건을 의미

2.1.1 데이터 모델의 분류
저수준(물리적)데이터 모델 : 어떻게 데이터가 저장되는지를 제공
표현(구현)데이터 모델 : 사용자들이 쉽게 이해할 수 있는 개념을 제공
고수준(개념적)데이터 모델 : 많은 사용자들이 데이터를 인식하는 방식에 대한 개념 제공
고수준(개념적)데이터모델 : entity(사원이나 프로젝트 같은 실세계의 객체나 개념을 나타냄), attribute(사원이 이름이나 급여 같은 entity의 특성), relationship(사원과 프로젝트 사이의 관계처럼 entitiy들 사이의 연관성)

2.1.2 스키마, 인스턴스, 데이터베이스 상태
DB schema : DB
기술(description)으로 자주 변경되지 않는다. 대부분은 도식적으로 스키마를 표현하는 표기법을 갖는데 이를 스키마 다이어그램이라 한다.(실제 인스턴스는 표현하지 않고 레코드 타입의 구조를 나타냄)
DB
상태 : 어떤 특정 시점에 DB에 들어있는 data(레코드를 변경할 때 DB는 다른 상태로 바뀜)
새로운 DB를 정의할 때 DB schemaDBMS에 명시, DBdata가 처음으로 적재될 때 초기상태로 됨

2.2 3단계-스키마 아키텍처와 데이터 독립성
2.2.1 3
단계-스키마 아키텍처
내부단계(internal level) : 내부 스키마를 가지며 이 스키마는 DB의 물리적 저장 구조 기술
개념단계(conceptual level) : 개념 스키마를 가지며 이 스키마는 모든 사용자를 위한 DB구조 기술(제약조건 등)
외부단계(external level) : 외부 스키마와 사용자 view를 가지며 이 스키마는 특정 user group이 관심을 갖는 DB 기술(나머지은폐)
사상(mapping) : 단계들 간 요구와 접근 결과를 변환하는 과정

2.2.2 데이터 독립성 : 고수준의 스키마를 변경할 필요없이, DBS의 어떤 단계에서 스키마를 변경할 수 있는 능력
논리적 데이터 독립성 : 외부스키마나 응용 프로그램들을 변경하지 않으면서 개념 스키마를 변경
물리적 데이터 독립성 : 개념스키마를 변경하지 않으면서 내부스키마를 변경
DBMS
catalog는 여러 단계 사이에서 요구와 데이터를 mapping하는 방법에 대한 정보 포함

2.3 DB언어와 interface
2.3.1 DBMS
언어
DDL(data definition language) :
스키마들을 명시
SDL(storage Defintion Language) :
내부스키마를 나타냄 (오늘날의 DBMS SDL이 거의 없다)
VDL(View Defintion Language) : 3
단계-스키마 아키텍처를 이용하여 사용자 뷰를 명시, 개념스키마들 사이의 맵핑
대부분의 DBMS DDL이 개념 스키마와 외부 스키마를 정의하는데 사용

DML(data manipulation language) : 데이터의 검색 삽입 삭제 수정 조작하는 언어
고수준(비절차적) DML : 복잡한 DB 연산을 간단하게 나타냄, 한번에 레코드 집합(선언적)
저수준(절차적) DML : 범용 프로그래밍 언어에 삽입하여 나타냄, 한번에 한 레코드
DML모두 범용 프로그래밍 언어 내에 DML이 삽입된 경우 프로그래밍 언어는 호스터언어, DML은 데이터 부속어라 하며 고수준 데이터 조작어가 대화식으로 진행되면 질의어라고 부른다

SQL(Structure Query Language) : DB와의 소통 수단으로 DDL DML의 융합, 제약조건 명시 외에 많은 기능

2.4 데이터베이스 시스템 환경

2.4.1 DBMS 구성 모듈
DB
DBMS catalog는 디스크에 저장되어 있으며 OS로 디스크에 접근
buffer
관리 모듈 : 많은 DBMS는 성능에 영향을 미치기 때문에 디스크 입출력을 스케쥴
저장 데이터 관리자 모듈 : 디스크에 저장되어 있는 DBMS의 정보(DB, catalog)에 대한 접근 제어
DDL compiler : DDL
로 명시된 스키마 정의들을 처리, 스키마들에 대한 정보(meta-data)DBMS catalog에 저장
catalog : DBMS
모듈들이 필요로 하는 파일의 정보, 제약조건을 포함(DBMS가 정보가 필요할 때 접근하는곳)
대화식질의 interface : 질의 컴파일러(질의들을 파싱하고 데이터원소들이 정확한가 입증하고 내부 형태로 컴파일 + 질의 최적화기(연산들을 재배치하고 중복제거, 적절할 알고리즘과 인덱스를 선택)
precomiler :
호스트 언어로 작성된 응용프로그램에서 DML 명령들을 추출하여 DB접근을 위한 목적코드(object code)로 컴파일 하기 위해서 DML compiler로 보내고 프로그램에서 DML 명령을 제외한 나머지 부분은 호스트언어 compiler로 보낸다.
Runtime DB processor :
특권 명령, 실행가능 질의 계획, 미리 작성된 트랜잭션등을 수행, system catalog, 저장데이터 관리자와 함께 작동)
동시성 제어 모듈 : 제약조건을 침해하지 않으면서 트랜잭션이 잘 수행되도록 한다.
회복 모듈 : DB의 일관성, 트랜잭션의 원자성, 지속성을 유지
동시성 제어 모듈과 회복 모듈은 TR관리를 위해서 runtrim DB processor와 통합하여 동작한다.

2.4.2 DBS utilities : DBA DBS를 관리하는 것을 도와줌
적재(loading) : 기존의 data file DB에 적재
백업(backup) : 저장매체에 DBcopy를 만듦
파일 재조직(file reorganization) : DB의 파일 구조를 다른 파일 구조로 재조직, 새로운 접근경로 형성(성능향상)
성능 모니터링(performance monitoring) : 사용통계를 DBA에게 전달

2.4.3 도구, 응용, 환경, 통신 장비
케이스 도구 : DBS를 설계하는 과정에 사용
데이터 사전(저장소) 시스템 :
응용개발환경, 통신 소프트웨어가 있다.

2.5 DBMS를 위한 중앙집중식과 클라이언트/서버 아키텍처

2.5.1 중앙집중식 DBMS 아키텍처

2.5.2 기본적인 client/server 아키텍처
client :
사용자 인터페이스와, 자체 처리 능력을 제공
server :
클라이언트 컴퓨터에게 서비스들을 제공할 수 있는 hw, SW

2.5.3 DBMS를 위한 2- client/server architecture : client handles, server handles, API 제공

2.5.4 웹 응용들을 위한 3-client/server architecture

2.6 DBMS의 분류 (DBMS를 분류하기 위해 여러 기준이 사용)
1. data model :
가장 많이 사용하는건 관계 데이터모델,
2.
사용자 수
3.
사이트 수
4.
비용
5.
범용, 특수목적 DBMS 

'SW > Database MySQL' 카테고리의 다른 글

Entity-relation을 사용한 conceptual data modeling  (0) 2017.09.05
sql의 데이터 정의와 타입  (0) 2017.09.05
basic relation model (기본 관계 모델)  (0) 2017.09.05
database 기초상식  (0) 2017.09.05
JOIN  (0) 2017.09.05

'모델'에 해당되는 글 3건

1 →