Database(DB) 관련 용어
데이터베이스는 엑셀과 매우 유사한 형식으로 구성되어 있다
데이터가 어떻게 저장되어있는지 떠올려 볼 때 엑셀의 테이블(표)을 생각하면 좀 더 쉽게 이해할 수 있다
파일 시스템 | 데이터베이스 모델링 | 관계형 데이터베이스 |
---|---|---|
파일(File) | 엔티티(Entity) | 테이블(Table) |
레코드(Record) | 튜플(tuple) | 행(Row) |
키(Key) | 식별자(Identifier) | 기본키(Primary Key), Unique |
필드(Field) | 속성(Attribute) | 열(Column) |
테이블 Table (= 파일 Files , 릴레이션 Relation)
- 서로 연관된 레코드(행)의 집합
- 행(Row)과 열(Colunm)로 이루어진 데이터 집합
어트리뷰트(특성) Attribute (= 필드 Fields)
- 엑셀에서 열(Column)에 해당하는 가장 작은 단위의 데이터를 의미
- 엔티티(Entity)의 속성(특성)을 표현한다
- 각 엔티티마다 특성(어트리뷰트)이 다를 수 있다
- 같은말로는 칼럼이라고도 한다
- 어트리뷰트의 수는 디그리(Degree) 라고도 한다
- 데이터베이스에서 필드와 특성(어트리뷰트)는 본질적으로 같은 것을 이야기 한다, 다만 이 특성들은 다른 테이블/엔티티와의 관계에 대해 이야기 할 때 필드라고 불려질 수 있다
차수 Degre
- 하나의 Realtion(테이블) 내에 있는 Attribute의 수
튜플 Tuple (= 레코드 Records)
- 엑셀의 행(Row)에 해당한다
- 논리적으로 연관(관계)된 필드의 집합을 의미한다
- 여기서 각각의 필드는 특정한 데이터 타입과 크기가 지정되어 있다
-> 여러행이 모여 한 열을 이루듯 여러 필드가 모여 한 레코드를 이루는 것임 - 튜플은 릴레이션에서 같은 값을 가질 수 없다
- 튜플의 수는 카디날리티(Cardinality) 라고 한다
엔티티 Entity
- 객체
- 현실 세계에 존재하는 객체를 데이터베이스 상에서 표현하기 위해 사용하는 추상적인 개념
- 엔티티와 레코드의 차이점
- 레코드는 실제 데이터베이스 상에 저장되어 있는 값들의 모임을 말한다
- 반면, 엔티티는 현실세계에 존재하는 객체를 표현하기 위해 비유(추상)적으로 사용된다
식별자 Identifier
- 여러개의 집합체를 담고있는 관계형 데이터베이스에서 각각의 구분할 수 있는 논리적인 개념
- 특성
- 유일성 : 하나의 키로 어떠한 행을 바로 찾아낼 수 있는 성질
- 최소성 : 레코드를 식별하는데 꼭 필요한 속성들로만 구성되어 있는 성질
키 Key
- 테이블에서 행의 식별자로 이용되는 식별자
-
조건에 만족하는 튜플을 찾거나 순서대로 정렬할때 튜플들을 서로 구분할수 있는 기준이 되는 어트리뷰트
-
슈퍼 키 Super Key
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키이다
- 테이블의 행을 고유하게 식별할 수 있는 속성 또는 속성의 집합
- 릴레이션을 구성하는 모든 튜플에 대해 유일성을 만족시키지만 최소성은 만족시키지 못한다
-
복합 키 Composite Key
- 2개 이상의 속성(Attribute)을 사용한 키
-
후보 키 Candidate Key
- 유일성과 최소성을 만족시켜야 한다
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
- 기본 키로 사용할 수 있는 속성들을 의미
- 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재한다
-
기본 키 Primary Key
- 후보 키에서 선택된 Main 키
- null 값을 가질 수 없다
- 동일한 값이 중복되어 저장될 수 없다
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다
-
대체 키 Surrogate Key
- 후보 키에서 선택되지 않은 키
-
외래 키 Foreign Key
- 어떤 다른 테이블간의 기본키를 참조하는 속성
- 테이블들 간의 관계를 나타내기 위해서 사용된다
- 다른 릴레이션의 기본 키를 그대로 참조하는 속성의 집합을 의미한다
- 외래키가 되는 속성과 기본키가 되는 속성의 이름은 달라도 되지만 그 둘 속성의 도메인들은 반드시 같아야한다
-> 도메인이 같아야 연관성 있는 투플을 찾기위한 비교 연산이 가능하기 때문이다 - 기본키를 참조하지만 기본키가 아니기 때문에 null값을 가질 수 있고, 서로 다른 투플이 같은 값을 가질 수 있다
도메인 Domain
- Realtion(테이블)에서 각각의 속성에 채워질 수 있는 데이터의 타입과 길이를 의미한다
스키마 Schema
- 데이터베이스를 구성하는 데이터 객체, 속성, 레코드 간의 관계 등
데이터베이스의 골격 구조를 나타내는 일종의 도면 -
데이터베이스의 엔티티과 그 엔티티들 간의 관계를 정의하고 , 어떠한 타입의 데이터가 어느 위치에 적재되어야 하는지 , 또 다른 테이블이나 엔티티와 어떠한 관계를 맺는지 정의한다
-
외부 스키마 (=서브 스키마=사용자 뷰(가상 테이블))
- 사용자 입장에서 정의한 데이터베이스의 논리구조
- 데이터들을 어떠한 형식/구조/화면을 통해 사용자에게 보여줄 것인가에 대한 명세를 뜻한다
- 하나의 데이터베이스에는 여러 개의 외부 스키마가 있을 수 있다
-
개념 스키마 (=전체적인 뷰)
- 데이터베이스의 전체적인 논리적 구조
- 사용자가 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스이다
- 객체 간의 관계와 제약조건, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 뜻한다
- 데이터베이스 당 하나만 존재한다
- 내부 스키마
- 물리적 저장장치의 입장에서 본 데이터베이스 구조
- 데이터베이스에 저장될 레코드의 물리적인 구조, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다
트랜잭션 Transaction
- 데이터베이스 내에서 한꺼번에 모두 수행되어야 할 연산들의 집합이다
- 하나의 작업 처리를 위한 논리적 작업 단위이다
데이터베이스 언어 종류
-
데이터 조작어 DML (Data Multipulation Language)
- 저장된 데이터를 실질적으로 처리하는데 사용하는 언어로 데이터베이스 내의 자료를 검색, 삽입, 갱신, 삭제하기 위해 사용한다
- INSERT , UPDATE , DELETE , SELECT 등
-
데이터 정의어 DDL (Data Definition Langauge)
- 데이터 베이스를 정의하는 언어로 데이터베이스 안의 값들을 생성, 수정, 삭제하는 등 전체 골격을 결정하는 역할을 한다
- CREATE , ALTER , DROP
-
데이터 제어어 DCL (Data Control Language)
- 데이터베이스에 접근하거나 객체에 권한을 주는 역할로 데이터 관리를 위해 데이터의 보안성, 무결성 유지 등을 제어하는 언어이다
- COMMIT , ROLLBACK , GRANT , REVOKE 등
DBMS (Database Management System)
- 데이터베이스를 관리하는 소프트웨어
- 대표적으로 Oracle, MySQL, MS-SQL, MariaDB 등이 있다
SQL (Structured Query Language)
- 구조화된 질문 언어
- DBMS와 개발자가 소통하는 수단으로 데이터베이스에 접근하고 이용하기 위한 언어이다
- DBMS 종류에 따라 조금씩 차이가 있다
무결성 Integrity
- 정보에 결점이 없도록 유지하는 성질
- 데이터베이스 내에 저장되는 데이터 값들이 항상 일관성을 갖고 데이터의 유효성, 정확성, 안정성을 유지할 수 있도록 하는 제약조건을 두는 데이터베이스의 특성
원자값
- 더 이상 분해되지 않는 최소 구성의 단위
이상 현상 Anomaly
-
테이블 내에서 데이터 중복성에 의해 발생되는 데이터 불일치 현상
-
갱신 이상 Modification Anomaly
- 중복 데이터 중 일부만 수정되어 데이터 불일치가 일어나는 현상
-
삽입 이상 Insertion Anomaly
- 중복된 데이터 중 일부만 수정되어 데이터의 모순이 일어난 현상
-
삭제 이상 Deletion Anomaly
- 특정 정보 삭제 시 다른 정보까지 삭제되어버리는 현상
정규화 Normalization
- 논리적 설계단계에서 발생할 수 잇는 종속으로 인한 이상 현상의 문제점을 해결하기 위해,
속성들 간의 종속 관계를 분석하여 여러개의 릴레이션으로 분해하는 과정
댓글남기기