일정한 규칙, 규약을 통해 구조화 되어 저장되는 데이터의 모음입니다.
데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있습니다.
데이터베이스를 제어, 관리하는 통합 시스템을 의미합니다.
(ex. Oracle, MySQL, PostgreSQL, MariaDB...)
여러 개의 속성을 지닌 명사를 의미합니다.
(ex. 회원이라는 엔터티는 이름, 아이디, 주소, 전화번호의 속성을 갖습니다)
정보를 구분하여 저장하는 기본 단위입니다.
엔터티에 관한 데이터를 릴레이션 하나에 담아서 관리합니다.
관계형 데이터베이스에서는 '테이블'이라고 하며, NoSQL 데이터베이스에서는 '컬렉션'이라고 합니다.
릴레이션에서 관리하는, 구체적이고 고유한 이름을 갖는 정보입니다.
릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합을 말합니다.
속성 : 이름, 아이디, 주소, 폰 번호
필드 : name, Id, address, phonenumber
필드는 타입을 갖습니다. (ex. 숫자타입, 문자타입, 날짜타입...)
유일성 : 중복되는 값이 없습니다.
최소성 : 필드를 조합하지 않고 최소 필드만 써서 키를 형성합니다.
기본기 (Primary Key) : 유일성과 최소성을 만족하는 키입니다.
외래키 (Foreign Key) : 다른 테이블의 기본키를 그대로 참조하는 값으로 개체와의 관계를 식별하는데 사용합니다.
릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리 하는 과정입니다.
제1정규형
릴레이션의 모든 도메인이 더이상 분해될 수 없는 원자 값만으로 구성되어야 합니다. (반복 집합 제거)
제2정규형
부분 함수의 종속성을 제거한 형태를 말합니다. 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것을 말합니다.
제3정규형
기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않는 상태를 말합니다.
보이스/코드 정규형(BCNF)
결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태를 말합니다.
원자성 (atomicity) : 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징입니다.
일관성 (consistency) : 허용된 방식으로만 데이터를 변경해야 하는 것을 의미합니다.
격리성 (isolation) : 트랜잭션 수행 시 서로 끼어들지 못하는 것을 말합니다.
지속성 (durability) : 성공적으로 수행된 트랜잭션을 영원히 반영되어야 함을 의미합니다.
데이터의 정확성, 일관성, 유효성을 유지하는 것을 말합니다.
인덱스는 보통 B-트리라는 자료구조로 이루어져 있습니다.
인덱스를 설정하면 테이블 안에 찾고자 하는 데이터를 빠르게 찾을 수 있습니다. 효율적인 단계를 거쳐 모든 요소에 접근할 수 있는 균형잡힌 트리구조와 트리 깊이의 대수확장성 때문입니다. 대수확장성이란 트리 깊이가 리프노드 수에 비해 매우 느리게 성장하는 것을 의미합니다.
조인이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 말합니다.
참고 사이트 : https://sql-joins.leopard.in.ua/