본문 바로가기

기록(노트)

eXERD / 릴레이션 / 정규화 / ERD, DBMS

country table의 continent별로 인구수의 평균을 구하시오.

단, 소수점 아래는 버림하고, 정수만 구하시오.

조회할 컬럼:continent, 평균 인구(정수)

*FLOOR 함수 사용

 

 

 

 

 

 

 

=============================================================

ksmartdb 회원 레벨 이름이 "관리자"인 회원의 이름, 레벨 이름, 이메일 조회하세요.

 

회원 중, 2월에 로그인한 회원의 아이디, 이메일, 로그인 일자를 조회

힌트:MONTH(), >=기간 비교, BETWEEN ~ AND 등

 

 

====================

확인방법

1.NULL값을 찾을때 , = 이 아닌, IS NULL을 사용한다.

--> mem_email IS NULL

2.NULL이 아닌 값을 찾을 때, IS NOT NULL;

-->mem_email IS NOT NULL

 

 

============================================

등급이 없는 회원의 아이디, 이름, 레벨을 조회하시오

 

데이터베이스 설계

-사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정

-실무 능력, 경험. 단, 좋은 설계와 나쁜 설계는 분명히 존재

 

단계

-요구 사항 수집 및 분석

-개념적 > 논리적 > 물리적

-구현

 

개념적

-ERD, DBMS에 독립적이다

-개체와 속성을 추출한다.

-업무와 관련이 깊은 명사를 추출하며,

예시: 마트에서 상품을 구입하는 경우 -> 상품, 마트, 고객, 직원, 관리자.

2)대학교 학사 관리

사물: 강의실, 교자재, 행정실 등등

사람: 행정 담당자, 학생, 교수 등등

 

쇼핑몰 구현

쇼핑몰, 회원, 아이디, 비밀번호.. 등

-> 쇼핑몰은 광범위하고 일반적인 의미, 제외한다.

 

객체 간의 관게를 추출한다.

관계: 개체 간 의미있는 연관성.

추출 방법: 요구 사항 문장에서 개체 간 연관성을 의미있게 표현한 동사를 추출한다.

 

관계 추출 예시

회원이 상품을 주문한다

제조 업체 - 상품 -> 공급한다.

회원이 게시글을 > 작성한다.

 

논리적 설계

DBMS에 적합한 구조 설계

릴레이션 스키마로 변환.

속성에 대한 세부 내용 결정 - 데이버 타입, 길이, NULL허용 여부, 기본 값

, 제약 조건 등등 --> 문서화

 

릴레이션 변환 규칙

1.모든 개체는 릴레이션으로 변환한다.

2. 다다 관계는 릴레이션으로 변환한다.

3. 1:다 관계는 외래키로 표현한다.

4. 1:1관계는 외래키로 표현한다.

5. 다중 값 속성은 릴레이션으로 변환한다.

 

개념적

- 개체 추출, 릴레이션으로 변환.

-개체의 핵심 속성을 추출한다.

ex)

고객: 이름, 주소, 연락처 등

도서: 도서 이름, 출판사, 단가 등

 

정규화: 잘 못 설계된 테이블을 수정하여 정상으로 만드는 과정.

기본원칙: 하나의 테이블에는 중복된 데이터가 없다록 하는것.

 

2. 다다 관계는 릴레이션으로 변환한다.

->정규화에 위반되는 다다 관계는 반드시 관계를 재설정해야한다.

 

3. 1:다 관계는 외래키로 표현한다.

제조 업체 - 상품

1            여러상품을 공급하다

제조업체(업체명, 연락처, 주소, 담당자)

상품(상품코드, 상품명, 재고량, 단가, 업체명)

 

*강한 개체와 약한객체

강한 개체: 다른 개체의 도움 없이 존재할 수 있다.

약한 객체: 독자적으로 존재할 수 없다. 반드시 상위 개체가 필요함.

*약한 개체가 참여하는 1:n관계는 외래 키를 포함하여 기본 키로 지정한다.

카테고리 만들때, 대 분류 중 소

 

4. 1:1관계는 외래키로 표현한다.

-1:1관계는 많이 없다.

-일반적인 1:1관계는 외래 키를 서로 주고 받는다.

-필수적으로 참여하는 개체의 릴레이션에 외래 키를 받는다.

-모든 개체가 1:1관계에 필수적으로 참여한다면, 릴레이션을 합칠 수 있다.

 

일반적인 1:1관계

남자(남자번호, 이름, 연락처, 건강상태, 여자번호)

여자(남자번호, 이름, 연락처, 건강상태, 남자번호)

 

필수적으로 참여하는 개체

남자(남자번호, 이름, 연락처, 건강상태, 여자번호)

여자(남자번호, 이름, 연락처, 건강상태)

 

모든 개체가 1:1관계에 필수적으로 참여

남자(남자번호, 이름, 연락처, 건강상태, 여자번호)

여자(남자번호, 이름, 연락처, 건강상태, 여자번호)

혼인(남자번호,여자번호,남자이름, 남연락처, 남건강상태, 여이름, 여연락처, 여건강상태 )

 

4. 물리적 설계 - 문서화한 내용을 실제로 만든다.

 

5.구현

===============================

eXERD는 데이터 모델링 툴.

F4,F5 -> 논리모드, 물리 모드 변경 가능.

논리 모드: 테이블의 정보, Comment작성

물리 모드: 실제 테이블의 이름, 컬럼 작성

 

리버스 엔지니어링: DBMS의 객체들을 E-R다이어그램으로 가지고 오는.

포워드 엔지니어링: 데이터베이스 모델링 후, DBMS에 테이블을 생성, 등록해주는 기능.

 

이상 현상(Anomaly)

데이터의 조작(삽입, 수정, 삭제)하는 경우, 이상 현상이 발생한다.

이상현상이 발생하면, 데이터베이스의 일관성 훼손, 무결성이 깨진다.

 

종류(잘 못 설계된 테이블에서 이상 현상 발생)

삽입 이상: 릴레이션에 데이터를 삽입 시, 원하지 않는 데이터도 함께 삽입해야하는 현상

삭제 이상: 릴레이션에서 튜플 삭제 시, 원하지 않는 값들도 함께 삭제되는 현상

갱신 이상: 릴레이션의 튜플 속성 값 갱신 시, 일부 튜플의 정보만 갱신되어 정보의 모순이 발생