목록데이터분석/데이터베이스 (14)
코딩세상

- 공유 킥보드 DB 앞서 정규화 과정을 통해 각각의 데이터베이스에서 발생하는 오류와 정규화를 통해 해결하는 방법을 공부하고 위 사진과 같이 고객테이블, 대여 테이블, 가격 테이블, 회사 테이블로 나누었습니다. 앞에서 배웠던 것처럼 데이터베이스를 좀 더 완벽하게 만들기 위해 각각의 테이블을 어떻게 수정하면 좋을지 알아보고 이에 따라 테이블을 수정해보겠습니다. - 고객 테이블 회원 가입 시 입력 받는 데이터 추가 기본키를 회원의 ID 대신 고유 번호로 설정 비밀번호는 값을 그대로 넣으면 보안에 취약 - 대여 테이블 고객 번호를 외래키로 사용 대여 장소보다 정확하게 위도와 경도 데이터를 받음 대여 상태를 입력 받아 킥보드를 대여하는 것인지 반납하는 것인지를 기록 브랜드명과 연식을 함께 외래키로 사용하는 대신..

- 정규화 정리 - 결정자이면서 후보키가 아닌 것 학생은 여러 과목을 수강할 수 있고 교수는 한 과목만 가르치는데 여기서 교수가 과목을 결정하는 결정자이지만 후보키는 아니다. - 다치 종속 (하나의 과목은 여러 교수가 가르치며 여러 공통 교재가 사용됨) 한 과목의 교수를 새로 등록하기 위해서는 교재별로 튜플을 만들어야 하므로 교수가 중복 등록됨 - 조인 종속 (하나의 수업은 여러 교수가 가르치며 학생은 같은 수업의 다른 교수 수업을 수강할 수 있음) 수업 테이블을 분해했다가 다시 합쳤을 때(조인) 불필요한 튜플이 발생 - 역정규화 정규화된 데이터베이스의 성능을 개선하기 위해 다시 통합하여 구조를 재구성 정규화를 통해 테이블을 분해하면 여러 테이블을 조인할 때 성능이 크게 떨어질 수 있습니다. 따라서 자주..

- 이상 현상 기본키는 복합키로 고객 ID와 대여시간 킥보드는 이용 1분에 대한 가격에 대한 정보를 브랜드를 출시한 회사가 결정 브랜드와 연식에 따라 킥보드의 기본료가 다름 삽입 이상 : 고객이나 대여 이력이 없는 경우 새로운 회사가 만든 브랜드를 삽입할 수 없음 갱신 이상 : elice 회사의 브랜드명이 변경되는 경우 데이터의 불일치가 발생함 삭제 이상 : flykite 고객의 대여 기록을 삭제하면 everythere 회사의 데이터가 완전 사라짐 - 이행 함수 종속 X → Y, Y → Z 라는 종속 관계가 있을 때, X → Z가 성립하는 경우 즉, X라는 속성을 통해 Y를 알고, Y라는 속성을 통해 Z라는 속성을 알 수 있는 경우 고객 ID와 대여 시간(기본키)을 알면 브랜드명을 알 수 있고, 브랜드명..

- 이상 현상 기본키는 복합키로 고객 ID와 대여 시간 삽입 이상 : 한 번도 대여를 하지 않은 고객을 삽입 할 수 없음 갱신 이상 : 하나의 튜플에서만 김민준 고객의 이름을 변경하면 데이터 불일치가 발생함 삭제 이상 : willgo 브랜드에서 대여한 기록을 삭제하면 이서연 고객의 데이터가 완전 사라짐 - 부분 함수 종속 기본키를 구성하는 속성 중 일부가 결정자 역할을 하는 경우 기본키가 복합키이거나 후보키가 결정자인 경우에 부분 함수 종속이 발생할 수 있음 반대로 기본키를 구성하는 속성 모두가 결정자 역할을 하는 경우는 완전 함수 종속이라고 함 고객 이름은 대여 시간과 관계 없이 고객 ID만으로 결정됨 고객 테이블과 대여 테이블로 분리하여 부분 함수 종속을 제거 - 2차 정규화(2NF) 위에서 확인한 ..

- 정규화를 하기 전에 ERD를 통해 최종 형태의 데이터베이스를 설계하는 것이 아니라 지속해셔 변경 해 나가야함 ↓ customer ERD 수정 - 이상 현상 다음 데이터베이스의 이상 현상은? 데이터 베이스에 저장된 대여시간이 한 속성 값에 두개가 입력되어 있습니다. 그렇다면 이러한 이상 현상을 없애기 위해 어떻게 해야될까요? 한 속성 값에 두 개가 입력된 대여 시간을 분해 - 1차 정규화(1NF) 위에서 대여 시간에 중복으로 입력되어 있는 값을 분해하여 각각의 대여 시간이 적혀있는 데이터로 분리하였습니다. 이를 통해 1차 정규화는 즉, 테이블의 컬럼이 하나의 값만 갖도록 도메인을 원자값으로 설정하는 과정 → 원자값 : 더 이상 나눌 수 없는 가장 작은 값 # 출처 엘리스 AI트랙 7기 - [수업자료]데..

- 이상 현상(Anomaly) 잘못된 데이터베이스 설계로 발생하는 오류 삽입 이상 : 주문하지 않은 고객의 데이터를 넣을 수 없는 문제 갱신 이상 : '김민준' 고객의 주소를 수정하려면 모든 튜플에서 갱신해야 하는 문제 삭제 이상 : '이서연' 회원의 주문 기록을 지우려면 회원의 데이터가 함께 삭제되는 문제 - 함수 종속성 속성들 간의 종속 관계 어떤 속성 X의 한 값이 다른 속성 Y에 속한 하나의 값에만 매핑되는 경우를 말하며, 여기서 X를 결정자, Y를 종속자라고 함(ID -> 이름) 완전 함수 종속, 부분 함수 종속, 이행 함수 종속 등이 있으며 함수 종속성에 대해 알아야 이상 현상을 제거하기 위한 정규화를 이해할 수 있음 - 정규화 (Nomalization) 이상 현상을 제거하기 위해 데이터베이스..

- IE (Information Engineering) 키를 나타내며 데이터 타입과 제약 조건도 표기 관계를 세부적으로 나타냄 - 까바귀발(crow's foot) 표기법 - app.diagrams.net 앞선 포스트에서 설명한 사이트에서 IE를 작성할 수 있습니다. https://app.diagrams.net/ Flowchart Maker & Online Diagram Software Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER di..

- 정의 ERD, Entity - Relationship Diagram (개체 - 관계 다이어그램) 현실 세계의 데이터를 개체와 관계 형태의 다이어그램으로 나타내는 것 표기법 : Peter Chen, IE - ERD 그리기 https://app.diagrams.net/ Flowchart Maker & Online Diagram Software Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design da..

- 정의 현실 세계에 존재하는 데이터를 데이터베이스화하는 과정 -> 공유 킥보드 브랜드가 많아져 이를 관리하기 위한 통합 프로그램 제작. 이를 위한 데이터베이스를 설계.... - 데이터 모델과 구성 요소 현실 세계의 데이터를 단순화, 추상화 하여 표현한 모델 개체(Entity) : 데이터로 표현하고자 하는 현실 세계의 개념이나 정보의 단위(ex : 킥보드, 회원) 속성(Attribute) : 개체에 대한 정보(ex : 킥보드의 브랜드 / 이용가격, 회원의 아이디 / 이름) 관계(Relationship) : 개체 간의 연관성(ex: 고객은 킥보드를 대여한다) - 과정 개념적 설계 : 현실 세계를 추상적 개념으로 표현하는 과정 논리적 설계 : DBMS가 처리할 수 있는 데이터 구조(스키마)를 설계 물리적 설..

- 키(Key) 조건에 만족하는 튜플을 찾거나, 정렬할 때 기준이 되는 속성 기본키 외래키 후보키 대체키 슈퍼키 - 기본키 (Primary Key) 서로 다른 튜플을 유일하게 식별할 수 있는 기준이 되는 속성 중복되는 값을 가질 수 없음 널 값을 가질 수 없음 테이블 당 1개만 설정 - 외래키(Foreign Key) 다른 데이블의 기본키를 참조하는 속성으로 테이블의 관계를 정의 참조되는 테이블의 기본키에 없는 값은 지정할 수 없음 - PRIMARY KEY / FOREIGN KEY 기본키 설정 : PRIMARY KEY 외래키 설정 : FOREIGN KEY (참조할 속성) REFERENCES 참조되는 테이블(참조되는 속성) - 그 외 키 후보키 : 기본키가 될 수 있는 키로 유일성과 최소성을 만족 (기본키 ..