ER모델
: Entity Relationship Attribute
를 가지고 이 세상을 모델링 함.
모든 언어에는 표현력이 있다.(강한 표현력)
인간에 가깝다(고도의추상화)
엔티티
: 이단어는 이거야!라고 머릿속에 떠오르는 것
대부분의 경우 구체적 명사
독립적으로 존재하면서 고유하게 식별가능한 객체
ex) 사람, 인간, 토끼, 의자
관계
: 두개 이상의 엔티티들을 연관짓는 것
ex) 결혼, 수강, 소속
애트리뷰트
: 엔터티를 구성하는 속성
ex) 이름, 학번, 위치, 강사
= 데이터베이스의 스키마 정보에 해당
동일한 엔티티 타입에
학생이라는 엔티티타입에 30개의 엔티티
교수라는 엔티티타입에 1개의 엔티티
동일한 에트리 뷰트를 갖는 엔티티들의 모임
ex) 자동차를 예로 들어보자
자동차 = 엔티티 타입
car1 엔티티 1
car2 엔티티 2
car3 엔티티 3
애트리뷰트 = 차 넘버, 차종 등등
Car = {엔티티1, 2, 3} = 엔티티 집합.
애트리뷰트의 종류
: 단일값 <=> 다치
저장된 <=> 유도된
단 순 <=> 복 합
1. 단순 애트리뷰트 :
우리가 만드는 에트리뷰트의 90%이상이 단순
더이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트
실선 타원으로 표시
실선 사각형 = 엔티티 타입
ex) Customer[엔티티타입] -
ID, Name, address[단순 애트리뷰트]
2. 복합 애트리뷰트 :
두개 이상의 애트리뷰트로 이루어진 애트리뷰트
실선 타원으로 표시하지만
단순애트리뷰트에 선으로 연결되어있음
Address[단순애트리뷰트] -
City, Ku, Dong, Zipcode[복합 애트리뷰트]
Address는 단순일까 복합일까?
: 그때그때 다르다.
그럼 언제 단순이고 언제 복합일까?
: 단순일때는 회원가입할때 단순히 주소만 입력할때
복합일때는 주소라는 필드가 있고 입력박스로
경기도, 서울 막 나눠서 시군구를 선택하는방식.
각각을 나눴기 때문에 복합.
세부적으로 검색의 조건을 나누는 경우 = 복합
그런거 필요없고 입력된거 통째로 쓴다 = 단순
3. 단일값 애트리뷰트
: 각 엔티티마다 하나의 값을 갖는 애트리뷰트
회원가입시 학과, 생년월일
실선 타원으로 표시
4. 다치 애트리뷰트
: 각 엔티티마다 여러개의 값을 갖는 애트리뷰트
특기, 취미
실선 이중타원으로 표시
이름은 단일값일까 다치일까?
예를들어 개명을 한 친구들이 있다.
또는 가명. 연예인 하하(하동훈) 이름 적는 란에
조금 망설일 것 이다. 본명은 사람들이 잘모름.
이 사람은 하동훈(하하) 이렇게 쓰려고 할 수도 있다.
단일로 모델링한 경우 이름 칸에 이름 하나만 써라!
-> 강제의 의미
다치로 모델링한 경우 여러개를 넣어도 괜찮아요!
국가기관 주민등록 등본상의 등록 이름의 경우 : 단일
네이버-> 연예인이름 하하(하동훈) : 다치
결과적으로 필요에 따라 모델링 방법이 다르다
데이터 모델링은 처음 모델링을 할 경우
현실상황을 그대로 반영한다고 생각하지만
모델링을 해놓고 보면 우리의 삶은 그것에 종속 된다.
ex) 버스 카드 찍는 단말기에 우리가 버스카드를 찍는다.
5. 저장된 애트리뷰트
: 말그대로 실제 값을 하드디스크에 저장해놓는 애트리뷰트
90% 이상의 애트리뷰트가 저장된 애트리뷰트
실선 타원으로 표기됨.
6. 유도된 애트리뷰트
: 다른 값으로 부터 유도해 내어 얻는 애트리뷰트
점선 타원형
ex) 나이라는 필드가 있다. 1년이지나면.
모든 레코드들의 나이를 업데이트 해주어야 함.
현재 날짜와 계산해서 얻을 수 있다.
어디서 부터 유도가 될 수 있는지도 생각해봐야함
평점, 학생수, 재학생수
키 애트리뷰트
: 중복이 없다.
어떠한 두개이상의 필드에 해당 앤티티에 대해서
동일한 값을 갖지 않는다.
ex) 학번, 지문, 홍채인식
아닌 ex) 이름(동명이인),
주소를 키 애트리뷰트로 만들면 큰일남.
-> 너네형이 작년에 입학해서 너는 못들어와!
중복 값이 있어선 안된다. 라는 금지의 의미를 갖는다.
많은 엔티티 중에서 특정 엔티티를 식별해내는 의미
2012182037 나와 -> 한명이있던가 아무도 없던가
여러개의 애트리뷰트가 모이면 식별해 낼 수 있음
-> 경기도 부천에사는 25살 정OO씨!
밑줄로 표기함-> ID에 밑줄이 그어져있다면 ID=식별자
키 애트리뷰트가 여러개 있을 수 있다.
ID도 학번도 될 수 있음
하지만 둘다 밑줄을 긋는다면 둘중에 하나를 정해
밑줄을 그어야한다. 둘다 긋는 경우 둘을 합친게
식별자가 된다는 의미이기 때문에
'프로그래밍 > 데이터베이스' 카테고리의 다른 글
데이터베이스(DataBase) 질의어(Query Language) (0) | 2019.04.21 |
---|---|
데이터베이스(DataBase) 관계와 관계타입 (0) | 2019.04.10 |
[데이터베이스 - 2] 데이터베이스에 관하여 2 (0) | 2019.02.25 |
[데이터베이스 - 1] 데이터베이스에 관하여 (0) | 2019.02.25 |
제약조건 (0) | 2019.02.12 |