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도 학번도 될 수 있음

   하지만 둘다 밑줄을 긋는다면 둘중에 하나를 정해

   밑줄을 그어야한다. 둘다 긋는 경우 둘을 합친게

   식별자가 된다는 의미이기 때문에







+ Recent posts