1. 데이터베이스란?
: 일정한 규칙/규약을 통해 구조화되어 저장되는 데이터 모음
특징
- 실시간 접근성 : 수시적이고 비정형적인 질의에 대하여 실시간 처리에 의한 응답이 가능함
- 계속적인 변화 : 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지함
- 동시 공유 : 여러 사용자가 동시에 자기가 원하는 데이터를 이용할 수 있음
- 내용에 의한 참조 : 데이터베이스에 있는 데이터를 참조할 때 데이터 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾음
2. DBMS란?
: DataBase Management System 의 약자로 데이터베이스 관리 시스템 이란 뜻.
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해주는 소프트웨어.
기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용프로그램들이 데이터베이스를 공유할 수 있도록 관리해줌
데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 행할 수 있음. (정의, 조작, 제어)
DBMS 필수 기능 3
- 정의 : 데이터 형, 구조, 저장 시 제약조건 등 명시하는 기능
- 조작 : 데이터 검색, 갱신, 삭제 등을 처리하기 위해 데이터 접근 수단 등을 정의하는 기능
- 제어 : 데이터 무결성 유지, 보안, 권한, 병행 제어 등을 할 수 있도록 하는 기능
DBMS 특징
장점 | 단점 |
- 데이터 중복을 피할 수 있음 - 데이터 자료를 공동으로 이용할 수 있음 - 데이터 일관성, 무결성을 유지할 수 있음 - 보안을 유지할 수있음 - 데이터 표준화할 수 있음 - 데이터를 통합하여 관리할 수 있음 - 항상 최신의 데이터를 유지함 - 데이터 실시간 처리 가능함 - 데이터 문리적, 논리적 독립성 보장 |
- 전산화 비용 증가 - 대용량 디스크로의 집중적인 접근 과부하 발생함 - 파일의 백업과 회복이 어려움 - 시스템이 복잡함 |
기존의 파일 처리 방식에서 문제점
1) 종속으로 인한 문제점
- 종속성이란?
: 응용프로그램과 데이터 파일이 상호 의존적인 관계. 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 떄는 응용프로그램에도 같이 변경해야한다.
2) 중복성으로 인한 문제점
- 일관성 : 중복된 데인터 간에 내용이 일치하지 않는 상황 발생하여 일관성 없어짐
- 보안성 : 중복되어 있는 모든 데이터에 동등한 보안 수준을 유지하기 어려움
- 경제성 : 저장공간의 낭비와 동일한 데이터의 반복 작업으로 인한 비용 증가
- 무결성 : 제어의 분산으로 인해 데이터의 정확성을 유지할 수 없음
3. RDBMS란?
: Relational DataBase Management System의 약자로 관계형 데이터베이스 관리 시스템.
행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스. SQL이라는 언어 사용해 조작.
대표적으로 Oracle, MS-SQL 등
4. 스키마란?
: 데이터베이스의 구조와 제약조건에 관해 기술한 것.
데이터베이스를 구성하는 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의함.
스키마는 사용자의 관점에 따라 외부 스키마, 내부 스키마, 개념스키마로 나뉨
스키마는 데이터 사전에 저장되며, 다른 이름으로 메타데이터라고도 함
3단계 데이터베이스 구조
외부 스키마(=서브 스키마, 사용자 뷰) |
사용자가 응용프로그래머가 각 개인의 입장에서 필요하는 데이터베이스의 논리적 구조를 정의. 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마 라고도함 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마 존재 가능. 하나의 외부 스키마를 여러 응용 프로그램/사용자가 사용 가능. 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수있음. 일반 사용자는 질의어(SQL)을 사용하여 DB사용 |
개념 스키마 (=전체적인 뷰) |
기관이나 조직체의 관점에서 데이터베이스를 정의한 것. 데이터베이스 관리자에 의해 구성됨 데이터베이스의 전체적인 노리적 구조. 모든 응용프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스로 하나만 존재함. 개념 스키마는 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규직에 관한 명세 정의 단순히 '스키마' 라고 하면 개념 스키마를 의미함. |
내부 스키마 |
무리적 저장장치의 입장에서 본 데이터베이스 구조. 실제로 데이터베이스에 저장될 레코들의 물리적인 구졸르 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다. 시스템 프로그래머나 시스템 설계자가 본느 관점의 스키마이다. 데이터베이스의 물리적 구졸르 정의. 데이터의 실제 저장 방법 기술 |
5. 릴레이션이란?
릴레이션은 데이터들을 표 형태로 표현한 것.
릴레이션 구조에 대한 정보를 나타내는 릴레이션 스키마와 실제 저장된 값(집합)인 릴레이션 인스턴스로 구성
- 튜플 : 릴레이션을 구성하는 각각의 행. 속성의 모임. 파일구조에서 레코드. 튜플 수 = 카디널리티(기수)
- 속성(Attribute) : 릴레이션을 구성하는 각각의 열. 데이터베이스를 구성하는 가장 작은 논리적 단위. 파일 구조 상의 데이터 항목 / 데이터 필드에 해당. 개체의 특성을 기술함. 속성 수 = 디그리 = 차수
- 도메인 : 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합. (ex. 성별 속성의 도메인은 남, 여. 이외의 값은 입력될 수 없음)
- 릴레이션 인스턴스 : 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 갖고 있는 것(집합)을 말한다.
6. 데이터 독립성?
데이터 독립성이란?
- 하위 단계의 데이터 구조가 변경되더라도 상위 단계에 영향을 미치지 않는 속성.
(* 파일시스템의 경우 응용 프로그램과 데이터가 상호 밀접하게 연관되어 있어 데이터의 종속성과 중복성이 발생.)
데이터 독립성을 유지함으로써
- 데이터베이스 관리자는 데이터베이스를 사용하는 응용 프로그램을 수정하지 않고도 데이터의 구성, 표기방법, 저장위치를 변경 가능
- 데이터를 접근하는 응용 프로그램에 영향을 미치지 않고도 데이터를 처리하는 하드웨어와 소프트웨어를 보다 발전된 형태로 변경 또는 대체 가능
데이터 독립성의 종류
논리적 데이터 독립성 : 응용 프로그램에 영향을 주지 않고 데이터베이스 논리적 구조를 변경할 수 있는 능력.
데이터베이스를 확장 (새로운 레코드 타입이나 데이터 항목 추가) 하거나 데이터베이스를 축소 (기존의 레코드 타입이나 데이터 항목 삭제) 하면서 개념 스키마를 변경할 수 있으며, 후자의 경우는 남아있는 데이터만 참조하는 외부 스키마들이 영향을 받아서는 안됨.
외부스키마에 영향을 미치지 않으면서 개념스키마에 적용되는 제약조건들을 변경가능.
ex. 테이블 구조가 바뀌거나, 새로운 테이블이 추가되거나, 테이블 사이의 관계가 변경되어도 응용 프로그램은 수정할 필요가 없음
물리적 데이터 독립성 : 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 미치지 않고 데이터의 물리적 구조를 변경할 수 있는 능력.
내부스키마에 대한 변경은 파일에 대한 검색이나 갱신 성능을 향상시키기 위해서 접근구조를 추가하는 것처럼 어떤 파일들이 재구성 될 때 필요. Ex. 데이터가 저장되는 디스크의 섹터 크기나 트랙 크기가 변해도 응용 프로그램은 영향을 받지 않음.
7. 키의 개념과 종류
키란?
: 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성(attribute)
- 후보키 : 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합. 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야함
ex. <학생> 릴레이션의 '학번', '주빈번호'는 다른 레코드를 유일하게 구별할 수 있는 기본 키로 사용할 수 있으므로 후보키이다.
- 기본키 : 후보키 중에서 선택한 주키(main key). 한 릴레이션에서 특정 튜플을 유일하게 구분할 수 있는 속성. Null 값을 가질 수 없음. 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없음.
ex. <학생> 릴레이션에서 '학번', <수강> 릴레이션에서 '학번'+'과목명'
- 슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키 릴레이션을 구성하는 모든 튭플중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
유일성 만족, 최소성 만족 x
ex. <학생> 릴레이션에 '학번', '주민번호', '학번'+'주민번호', '성명'+'주민번호', '학번'+'주민번호' 등으로 슈퍼키 구성 가능
- 대리키 (= 대체키, 보조키) : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
ex. <학생> 릴레이션에서 '학번'을 기본키로 정의하면 '주민번호'는 대리키가됨
- 외래키 : 관계를 맺고 있는 릴레이션 R1,R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구. 외래콜 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없음
ex. <수강> 릴레이션이 <학생> 릴레이션을 참조하고 있으므로 <학생> 릴레이션의 '학번'은 기본키이고, <수강> 릴레이션의 '학번'은 외래키이다.
8. 무결성(Integrity)
무결성 이란?
: 데이터의 정확성, 일관성, 유효성이 유지되는 것
무결성 제약 조건 3
- 개체 무결성 : 릴레이션에서 기본 키를 구성하는 속성은 NULL 값이나 중복값을 가질 수 없음 (ex. <학생> 릴레이션에서 '학번'이 기본키로 정의되면 튜플 추가 시 다른 값은 입력하지 않아도 '학번' 속성에는 반드시 값을 입력해야한다. + '학번'속성에는 이미 한 번 입력한 속성값을 중복하여 입력할 수 없다.)
- 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야함. 즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음 (ex. '수강' 릴레이션의 학번 속성에는 <학생> 릴레이션의 '학번' 속성에 없는 값 입력 불가)
- 도메인 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정. (ex. '성별' 속성의 도메인은 남, 여. 다른 값 입력 불가)
참조
'CS > 데이터베이스' 카테고리의 다른 글
데이터베이스 면접 스터디 회고글 (1) | 2024.12.03 |
---|---|
데이터베이스 스터디 5주차 (0) | 2024.11.25 |
데이터베이스 4주차 - 정규화 (0) | 2024.11.18 |
데이터베이스 스터디 3주차 (2) | 2024.11.14 |
데이터베이스 2주차 스터디 (6) | 2024.11.07 |