danbibibi
article thumbnail
식별관계 비식별관계
CS/데이터베이스 2023. 4. 17. 23:10

식별 관계 부모 테이블의 기본키를 자식테이블의 기본키로 이용하는 방법 반드시 부모테이블에 데이터가 존재해야 자식테이블에 데이터를 입력할 수 있음 (데이터 정합성 보장) 실선으로 표시 💡 데이터 정합성 (Data Consistency) : 어떤 데이터들이 값이 서로 일치하는 상태 💡 데이터 무결성 (Data Integrity) : 데이터 값이 정확한 상태 ex) 중복 데이터가 다 틀린 값으로 일치하는 경우 = 정합성 O, 무결성 X 비식별 관계 부모 테이블의 기본키를 자식테이블의 외래키로 이용하는 방법 부모테이블에 데이터가 없어도 자식테이블에 데이터를 입력할 수 있음 (데이터 정합성 보장 x) 점선으로 표시 💡 비식별 관계 장점 1. 구조 변경 용이 2. 부모 테이블과의 의존성 제거 3. 과도한 인덱스 제거

article thumbnail
Index, View, Transaction (인덱스, 뷰, 트랜잭션)
CS/데이터베이스 2023. 4. 12. 17:11

Index (인덱스) 테이블에서 데이터 조회 시 동작속도를 높여주는 자료구조 (컬럼의 값, 레코드 저장 주소) 를 key와 value의 쌍으로 저장 MYI (MySQL Index) 파일에 저장 Index 장점과 단점 장점 테이블 조회 시 속도와 성능이 향상 시스템의 전반적인 부하 감소 가능 💡 Index를 사용하면 좋은 경우 1. 규모가 큰 테이블 2. 삽입, 삭제, 수정 작업이 적은 경우 3. 데이터 중복도가 낮은 경우 4. WHERE, ORDER BY, JOIN 등이 자주 사용되는 경우 💡 데이터 중복이 많은 경우, INDEX 사용이 비효율적인 이유 ex) 이름, 나이, 성별 세 가지 컬럼을 갖고 있는 테이블 이름 - 다양한 경우의 수 나이 - INT 타입 성별 - 남, 녀 (2가지) 이 경우, 이름..

article thumbnail
Key (후보키, 기본키, 슈퍼키, 대체키, 외래키)
CS/데이터베이스 2023. 4. 12. 15:44

키 (Key) 란? : 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때, 튜플들을 서로 구분할 수 있는 기준이 되는 속성 Key 종류 후보키 (Candidate Key) 기본키로 사용할 수 있는 속성들 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 하나의 릴레이션 내 중복된 튜플들이 있을 수 없으므로, 모든 릴레이션에는 반드시 하나 이상의 후보키 존재 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족 💡 유일성 : 하나의 키 값으로 하나의 튜플만을 유일하게 식별 가능 💡 최소성 : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성만으로 구성 기본키 (Primary Key) 후보키 중에서 선택한 주 키 (Main Key) 한 릴레이..

article thumbnail
데이터베이스 정규화(Normalization)
CS/데이터베이스 2023. 3. 30. 10:58

정규화란? 관계형 데이터베이스의 설계에서 중복을 최소화하도록 데이터를 구조화하는 프로세스 = 속성들 간의 종속 관계를 분석하여 여러개의 관계(Relation)로 데이터를 분해하는 것 무결성(Integrity)을 유지할 수 있으며, DB 저장용량을 줄일 수 있음 정규화 목표 불필요한 중복 최소화 각종 이상 현상 방지 다양한 관점에서 Query 지원 무결성 제약조건 시행 간소화 데이터 베이스 구조 확장시 재디자인 최소화 💡 이상 현상 (Anomaly) 이란? : 테이블 내 불필요한 데이터 중복으로 인해, 테이블을 조작할 때 발생되는 데이터 불일치 현상 ▶ 삽입 이상 (insertion anomalies) : 원치 않는 데이터가 삽입되거나, 삽입하는데 자료가 부족해 삽입이 되지 않아 발생하는 문제점 ▶ 삭제 ..

article thumbnail
MySQL 정리
CS/데이터베이스 2023. 2. 13. 01:24

MySQL 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템 다양한 운영체제에서 사용할 수 있으며, 여러 가지의 프로그래밍 언어를 지원 크기가 큰 데이터 집합도 빠르고 효과적으로 처리할 수 있음 널리 알려진 표준 SQL 형식을 사용 MySQL 응용 프로그램을 사용자의 용도에 맞게 수정할 수 있음 키워드와 구문에서 대소문자를 구분하지 않음 DB 서버마다 독립적인 스토리지를 할당하는 방식을 사용 MySQL 장점 용량 & 처리 : 적은 용량 차지(1MB RAM), 매우 적은 오버 헤드, 빠른 처리 속도로 대용량 데이터 처리에 용이 접근성 : 다른 데이터 관리 툴에 비해 구조가 간단하여 사용이 쉬움 지원 : 다양한 프로그래밍 언어와 통합 가능, 거의 모든 운영체제에서 사용을 지원 유연성 :..

article thumbnail
DBMS (데이터베이스 관리 시스템)
CS/데이터베이스 2023. 1. 12. 09:12

DBMS (Database Management System) : 어떤 조직에 대한 모든 정보를 가지고 있는 시스템으로, 데이터를 체계적으로 저장, 관리, 운영할 수 있도록 잘 조직화한 것 서로 관련된 데이터들의 집합, 데이터에 접근하기 위한 프로그램의 집합 (DB) + 데이터와 프로그램을 쉽고 편리하게 사용할 수 있는 환경 ( = DBMS) ( * DBMS는 DB에 정보를 저장하고, 또 이를 검색하기 위한 편리하고 효율적인 환경을 제공) DBMS 목적 DBMS 이전에는 파일 시스템을 이용해 데이터를 관리 이 경우, 데이터 중복, 비일관성, 고립, 무결성 등의 문제가 발생 ! → 이러한 문제를 해결하기 위해 DBMS 등장! DBMS 특징 데이터의 독립성 물리적 독립성 : 응용 프로그램이 물리적 스키마(크기..