CS/DataBase
우봉수
2023. 3. 11. 00:19
2023. 3. 11. 00:19
관계형 데이터 모델
- 데이터 모델 중 하나로 테이블 형식을 이용하여 데이터들을 정의하고 설명한 모델 (추상적인 개념)
- 실세계의 데이터를 누구나 직관적으로 이해할 수 있는 형태로 기술할 수 있는 간단한 방식을 제공 (추상화, 정형화, 수치화)
- 수학적인 개념을 바탕으로 설계됨
- 테이블들의 집합
관계형 데이터베이스
- 추상적인 개념인 관계형 데이터 모델에 기반하여 하나 이상의 테이블의 실세계를 표현한 데이터베이스
- 실세계를 관계형 데이터 모델이라는 추상적인 도구를 이용하여 표현한 것
- 테이블들을 컴퓨터의 기억 장치에 어떠한 방법으로 저장할 것인가에 대한 물리적인 구조까지 정의한 것은 아님 단순히 개념적으로 정의한 것
- 관계형 데이터베이스가 하나 이상의 테이블로 구성되어 있을 때
- 데이터베이스 스키마: 테이블 스키마의 집합
- 데이터베이스 인스턴스(테이블 구조에 맞도록 들어가는 레코드): 테이블 스키마들에 대한 테이블 인스턴스의 집합
릴레이션(테이블)
- 수학적으로 두 개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합을 의미
- 속성(열)<필드>과 튜플(행)<레코드>으로 구성되어 있음
도메인(domain)
- 데이터 타입
- 실제 데이터 베이스에서 사용하진 않음
- 각각의 필드가 가질 수 있는 값의 범위
- 원자값(더 이상 분리되지 않는 값 - 최소 단위)이어야 함
- 판별 방법: 어떤 용도로 사용되느냐에 따라 달라진다.
널(null)
- 특정 필드에 대한 값을 알지 못하거나 아직 정해지지 않아 입력하지 못한 경우의 필드의 값
- 0이나 공백 문자와는 다름
테이블 스키마
- 테이블의 구조를 간단하게 표현한 것
- 테이블의 골격
테이블 인스턴스
차수
기수
테이블의 특성
- 중복된 레코드가 존재하지 않음
- 전체가 동일한 레코드는 존재하지 않음
- 테이블 인스턴스는 레코드들의 (집합)임
- 예시: {1,1,2,3,5} 는 중복된 수가 있어서 집합이 아님
- 레코드간의 순서는 의미가 없음
- 테이블 인스턴스는 레코드들의 (집합)임
- 두번째 세번째 필드를 찾는 연산 존재 x
- 예시: {1,2,3,5}, {2,1,3,5} {3,1,2,5} 다음은 전부 같은 집합임
우봉수
2023. 3. 3. 06:32
2023. 3. 3. 06:32
데이터베이스
- 정보를 필요에 따라 모아놓은 것
- 조작 가능한(컴퓨터로 처리가 가능한) 데이터의 모임
- 데이터를 좀 더 쉽게 처리하기 위해서 정렬된 형태로 저장
- 목적: 지식을 판단하는 근거가 되는 자료를 제공하기 위해 존재
- 서로 관련있는 데이터를 모아둔 기지(베이스)
- 정형화되고 조작 가능한 컴퓨터에 저장된 데이터의 모임
- 특정한 목적을 위해 계선, 저장, 검색, 정렬 등의 데이터 처리 작업을 수행
- 디스크에 저장되는 지속적인 데이터의 모임
데이터, 정보 그리고 지식
- 데이터: 실세계에 있는 현상 사실들을 관측하거나 측정하여 얻은 값들
- 정형화되고(어떤 특유의 폼 안에 맞게 기록되는) 기록할 만한 가치가 있다고 판단되는 어떤 현상이나 사건, 아이디어에 대한 묘사
- 객관적인 수치화된 값으로 저장이 되어 있어야함
- 정보: 데이터를 처리하여 유추한 사실들 (객관적임)
- 지식: 데이터와 정보를 처리하는 방법이나 분석과 판단에 관한 법칙 등을 포함하는 데이터와 정보에 비해 좀 더 상위 수준의 개념 (굉장히 주관적)
일시적인 데이터와 영구적 데이터
- 일시적 데이터
- 프로그램 종료시 사라지는 데이터
- 휘발성 데이터
- ex 프로그램의 변수
- 영구적 데이터
- 비휘발성 데이터
- 프로세스의 생명주기에 종속적이지 않고 스스로 존재
- 비휘발성 매체에 저장 ex SSD
데이터베이스 관리 시스템
- DBMS: DataBase Management System
- 컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템
- 사람들이 데이터베이스를 쉽게 사용할 수 있게 해주는 시스템
- 사용자와 데이터를 연결시켜주는 인터페이스
- DBMS 종류들
- Oracle, MS SQL-Server, DB2, MySQL
- 실세계 비유
- 물건 - 데이터
- 창고 - 데이터베이스
- 창고관리인 - DBMS
- 직원 - 응용 프로그램 또는 사용자
- 제공하는 기능
- 정보를 표현할 수 있는 틀
- DBMS가 정보를 관리할 수 있는 양식: Table의 양식
- 다양한 정보의 표현이 가능해야 함
- DDL 언어를 통해 정의
- 데이터의 공유기능
- 서로 동일한 데이터는 하나의 데이터로 관리함
- 데이터를 공유함으로써 데이터의 중복을 제거
- 동시성 제어: 동일한 데이터를 여러개의 응용프로그램에서 동시에 접근(트랜잭션) 하게 될때 해당 데이터가 비 일관적인 상태에 빠질 수 있는(동시성 문제)것을 방지 (어느 한쪽의 실행을 멈춤)
- 데이터 무결성 유지 기능
- 데이터를 정의할때 제약조건을 정의하기 때문에 들어온 데이터가 정확한 값임을 알 수 있음
- 데이터 독립성
- 응용 프로그램과 데이터 간의 독립성을 보장
- 데이터 베이스의 테이블을 바꾸어도 프로그램이 바뀌지 않는다
- 효율적인 자원관리
- 많은 양의 데이터를 다루는데 효과적인 방법을 사용함
- 디스크 상에 데이터를 배치시키거나 디스크의 데이터를 메인메모리로 버퍼링을 하는 기능을 제공해줌
- 데이터 보안성과 안정성 유지 기능
- 읽기 쓰기 권한을 따로 구분해서 제공함으로써 보안성과 안정성을 유지
파일 시스템의 데이터 관리 기능
- 파일 시스템
- 운영체제의 중요한 부분으로 데이터나 프로글매을 디스크에 읽고 쓸 수 있도록 해주는 프로그램
- 프로그램에서 다루는 데이터를 직접 하나의 파일에 저장하여 관리 하는 경우의 문제점
- 프로그램 이외의 방법으로도 데이터 조작 가능
- 프로그램과 데이터 형식이 묶여 있음
- 동시 접근의 문제
- 보안 문제
- 장애 복구 문제
- 파일 시스템을 이용하는 DBMS
- 파일 시스템: 기본적인 저장 기능만을 제공
- DBMS: 데이터베이스 관리에 필요한 다양한 기능을 제공
데이터베이스 시스템과 사용자
- 일반 사용자 (end user)
- 응용프로그램의 인터페이스를 통해서 데이터베이스에 접근
- 응용프로그램 개발자
- DBMS 개발자
- DBMS 구성하는 모듈들을 설계하고 구현하는 사람
- 데이터베이스 관리자
- 데이터베이스에 관련된 모든 것에 관리하고 책임을 지는 사람