정보처리산업기사 과정평가/응용 SW 기초활용

[과정평가형 정보처리 산업기사] 관계형 데이터베이스 활용

비뀨_ 2022. 2. 27. 23:02

ERD ( E - R Diagram  : Entity Relationship Diagram 실재or실체 관계 도표)

ERD는 위에 써놨듯이 한글로 풀자면 실제로 존재하는 것의 관계를 그린 표이다.

프로젝트에 썼던 ERD

위는 팀 프로젝트 때 썼던 ERD인데, 어떻게 생겼는지 알 수 있게 예를 들었다.

위처럼 ERD는 업무 분석 결과로 만든 실체(Entity)와 실체와의 관계를 도식화한 것이다.

 

더보기

우리가 사람의 신체구조가 어떻게 생겼는지 말만 하는 것 보다 그림이 이해가 빠르듯이 

데이터베이스 관리자, 개발자, 사용자가 데이터의 흐름과 연관성을 공통으로 쉽게 확인할 수 있다.

개체 ( Entity ) 

 

사물 ,사건으로 정의한다.

ERD에서 Entity는 사각형으로 나타내고 사각형 안에는 Entity의 이름을 넣는다.

유일한 단어로 정한다.

속성 ( Attribute )

Entity가 가지고 있는 요소나 성질을 뜻한다.

선으로 연결된 동그라미로 표기하거나 , 표 형식으로 표기한다.

 

보라색이 속성

속성 명명 규칙

  • 속성명은 단수로 짓는다.
  • Entity명을 사용하지 않는다.
  • 속성이 필수 사항인지( Not null ), 필수가 아닌지 고려하여 작성.

 

관계 ( Relationship )

Entity와 Entity 간의 관계를 정의한다.

NCS 책 - 관계 표시 방법

ERD 작성

1. ERD 작성 표기

종이, 화이트보드, 포스트잇, 소프트웨어 등 작성자가 원하는 도구를 사용하여 작성.

ERD 작성 소프트웨어가 시중에 많으니 보통 소프트웨어를 사용하여 작성한다.

 

2. ERD 최적화

테이블 정의

시스템을 분석해 Entity, 속성을 추출하여 테이블 작성.

정규화 수행

  • 이유 : 무결성을 확보하고 중복성을 배제하여 테이블에 정확한 데이터가 들어가도록 하기 위해.
  • 장점 : 저장공간을 최소화하고, 시스템 속도도 빠르게 할 수 있다. 

 

정규화의 종류

1차 정규화(1NF - First Nomal Form)

 반복되는 그룹의 속성을 별도로 추출, 테이블의 데이터가 하나의 값을 갖도록 하는 것.

제1 정규화 이전과 이후

위 표를 보면 1정규화 이전에는 아이유가 가수와 연기자라는 두개의 직업을 갖고 있다.

바꿔말하면 1차 정규화 위반이며, 오른쪽과 같이 '한개의 속성에는 한개의 값만 들어가야한다' 는게

1차 정규화의 원칙이다.

 

2차 정규화 (2NF - Second Nomal Form)

 부분 함수적 종속성 제거.

  • 부분 함수적 종속성의 뜻은 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러개 일 때 기본키를 구성하는 속성 중 일부분만 종속되는 것을 말한다.

2차 정규화는 1차 정규화가 완료된 테이블에 대해 시행한다.

완전 함수적 종속성이 되려면 복합키여야 하기 때문에 기본키가 1개뿐이면 2차 정규화는 자동으로 성립된다.

 

개체( Entity )는 하나의 사물이나 속성이라고 했는데, 위의 표는 뭐라고 이름을 지어야 할까 ..?

' 고객명단과 필요물품 '을 하나의 속성이라고 볼 수 있을까??

'2차 정규화는 이렇게 하나의 개체를 잘 지켜야된다는 뜻.' 이라는게 쉽게만 이해하기 위한 요약이다.

 

  • 고객번호를 알면 고객 이름과 직업을 알 수 있다.
  • 직업을 알면 필요물품을 알 수 있다.
  • 필요물품을 알면 가격을 알 수 있다.

이렇게 하나를 알면 다른 속성들을 알 수 있는 것을 결정자라고 한다.

 

 

기본키는 고객번호 직업이라고 했을 때 물품의 가격구매물품, 고객이름 고객번호에 의해 결정된다.

이렇게 되면 기본키가 2개인데, 한개에만 결정이 되는 일이 생긴다.

2차 정규화는 '데이터는 기본키로 설정한 것을 모두 사용해야한다' 라는 것이고 2차 정규화를 진행하면 테이블이 여러개가 될 수 있다.

 

테이블을 나누어서 고객테이블과 물건 테이블로 구성이 되었다.

3차 정규화

 

2차 정규화를 진행한 테이블에 대해서 이행적 종속을 없애도록 테이블 분해.

키에 종속되지 않은 칼럼을 제거. 

  • 종속 관계 
    • 고객 번호 , 고객이름 , 직업이 있을 때 고객번호는 고객이름과 직업을 결정하게 됨. 
    • 이것을 고객이름과 직업은 고객번호에 종속적이다라고 보는 것.
  • 이행적 종속
    • 종속 관계가 2번이 있는것.
    • 예 : A-> B 이고 B -> C 일 때  A-> C가 성립되는 것.
    • 다른 예 : A 로 B 와 C를 알 수 있다. 하지만 B로도 C를 알 수 있다면. 이행적 종속이 됨.

 

 

 

 

 

참고 : 

https://mangkyu.tistory.com/110

 

[Database] 정규화(Normalization) 쉽게 이해하기

지난 포스팅에서 데이터베이스 정규화와 관련된 내용을 정리했었다. 하지만 해당 내용이 쉽게 이해되지 않는 것 같아서 정규화 관련 글을 풀어서 다시 한번 정리해보고자 한다. 1. 정규화(Normaliz

mangkyu.tistory.com

https://jhnyang.tistory.com/358

 

[데이터베이스 정규화] 제2정규화(2NF)와 알아보는 결정자와 종속자 그리고 그 관계 (완전 함수적

[데이터베이스 강좌 링크 바로가기] 안녕하세요~~ 양햄찌 주인장입니다. 저번 포스팅에서 정규화란 무엇인지! 정규화가 왜 필요한지에 대한 설명과 더불어 제1정규화를 간략하게 살펴보고 끝냈

jhnyang.tistory.com