특정 조직의 기능을 수행하는데 필요한 상호 관련된 데이터들의 모임
동일한 내용의 데이터가 중복되어 있지 않다는 것을 의미
데이터 중복은 관리상의 부작용을 초래
자기 디스크나 자기 테이프 등과 같이 컴퓨터가 접근할 수 있는 저장매체에 저장되는 것을 의미
일반적으로는 컴퓨터에 저장된 데이터는 저장 주소를 알아야 검색이 가능
하지만 데이터베이스는 저장된 주소나 위치가 아닌 데이터의 내용, 즉, 값으로 참조 가능
[대이터 내용에 관한 조건만 맞는다면 서로 다른 위치에 저장되어 있어도 모두 검색 가능]
데이터 베이스는 기본적으로 컴퓨터 기술을 바탕으로 한다.
여러 사용자가 서로 다른 목적으로 데이터를 공동으로 이용한다는 의미
데이터베이스가 동시 공유의 개념을 지원하도록 조직하고 관리하는 것은 어려움
특히, 같은 데이터를 동싱에 사용하기 위해서는 더욱 까다로운 처리가 필요
대용량화되고 구조가 복잡한 것이 보통
데이터베이스에 저장된 내용은 데이터베이스의 현시점에서의 상태를 나타냄
데이터베이스는 조직을 운영하고 조직의 주요기능을 수행하기 위해 꼭 필요한 운영 데이터
다만, 이 상태는 새로운 데이터의 삽입, 기존 데이터의 삭제*갱신을 통해 항상 변화하면서도 현재의 정확한 데이터를 지속적으로 유지해야한다. (→ 고정된 데이터 X)
데이터베이스는 사용자에게 실시간으로 데이터를 제공할 수 있어야 함
사용자의 개인 특성이나 제공되는 서비스 유형에 따라 허용되는 응답시간이 다르지만 대개 몇 초 이내에 제공
장 점 | 단 점 |
데이터의 중복성 최소화 데이터의 공유 데이터의 일관성/무결성/보안성 유지 데이터의 논리적*물리적 독립성 애플리케이션 개발 및 유지보수 용이 |
데이터베이스 전문가의 부족 전산화 비용 증가 데이터 유실 시 파일 회복이 어려움 시스템의 복잡화 처리속도가 느림 |
데이터 정의어 [DDL] |
데이터베이스를 생성하거나 수정하는데 사용되는 언어 데이터베이스 관리자나 데이터베이스 설계자가 사용함 데이터베이스의 논리적 구조와 물리적 구조를 정의할 수 있음 ex> CREATE, ALTER, DROP |
데이터 조작어 [DML] |
사용자가 응용 프로그램을 통해 DB에 저정된 데이터를 실질적으로 처리하는데 사용되는 언어 데이터 처리는 데이터의 검색, 삽입, 삭제, 변경 등을 말함 사용자와 데이터베이스 관리 시스템간의 인터페이스를 제공함 절차적 조작언어와 비절차적 조작언어로 분류됨 ex> SELECT, UPDATE, INSERT, DELETE |
데이터 제어어 [DCL] |
데이터 보안, 무결성, 데이터 회복, 병행수행 제어 등을 정의하는데 사용되는 언어 데이터베이스 관리자가 데이터 관리를 목적으로 사용함 ex> COMMIT, ROLLBACK, GRANT, REVOKE |
데이터를 단순하고 이해하기 쉬운 2차원 표 형식으로 관리하는 데이터베이스[2세대 DBMS]
→ 계층 구조가 아닌 단순한 표[Table]을 이용해 데이터의 상호관게를 정의하는 DB구조
→ 데이터를 Column과 row를 이루는 하나 이상의 테이블로 정리해 Primary key가 각 row를 식별
→ row는 레코드나 튜플로 부르며, 일반적으로 각테이블[관계]는 하나의 엔티티 타입을 대표
Column은 엔티티 종류의 인스턴스의 속성이 되는 값을 대표
→ 현재 가장 주류를 이루고 있는 데이터 베이스
→ 1:1, 1:N, M:N관계를 자유롭게 표현 가능
Oracle, MS SQL Server, Access, Informix, MySQL 등이 대표적인 관계형 데이터베이스
관계형 데이터베이스 구조 | 설 명 |
테이블 | 데이터들을 행과 열로 표현한 것으로 튜플(레코드)의 집합(릴레이션) |
튜플[Tuple] | 테이블의 행을 구성하는 개체(레코드)로, 여러 속성들의 묶음 |
속성[Attribute] | 테이블의 열을 구성하는 항목(필드)으로, 개체의 특성이나 상태를 기술함 데이터의 가장 작은 논리적 단위 |
도메인[Domain] | 하나의 속성에서 취할 수 있는 값의 범위 |
릴레이션 인스턴스 [Relation Instance] |
데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 갖고 있는 것 |
차수[Degree] | 속성의 개수 |
기수[Cardinality] | 튜플의 개수 |
키의 종류 | 설 명 |
후보키 | 테이블을 구성하는 속성들 중에서 레코드(튜플)을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 기본키로 사용할 수 있는 속성 |
기본키 | 후보키 중에서 선택한 주키 Null값을 가질 수 없음 한 릴레이션에서 특정 레코드를 유일하게 구별할 수 있는 속성 기본키로 정의된 필드(속성)에는 동일한 값이 중복되어 저장될 수 없음 |
외래키 [외부키] |
관계를 맺고 있는 테이블 R1, R2에서 테이블 R1이 참조하고 있는 테이블 R2의 기본키와 같은 R1 테이블의 속성을 외래키라고 함 하나의 테이블에는 여러 개의 외래키가 존재할 수 있음 외래키로 지정된 필드에는 Null값이나 중복된 값을 입력할 수 있음 |
대체키 | 후보키 중 기본키를 제외한 나머지 속성을 말함 |
슈퍼키 | 한 테이블 내에 있는 속성들의 집합으로 구성된 키 테이블을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음 테이블을 구성하는 모든 튜플에 대한 유일성은 만족시키지만 최소성은 만족시키지 못함 |
개체 무결성 | 기본키는 NULL값을 가질 수 없음 |
참조 무결성 | 외래키 값은 참조 테이블의 기본키 값과 동일해야 함 |
필 수 | 선택(공백 가능) | |
숫자[기호 안됨] | 0 | 9 |
영문자, 한글 | L | ? |
영어, 한글, 숫자 | A | a |
모든문자, 공백 | & | C |
대문자 | > |
소문자 | < |
선택요소, 숫자, 공백, 덧셈뺄샘기호 가능 [단, 공백은 저장되지 않음!] |
# |
* | 글자 수 제한없이 조건 검색 |
ex> 피보험자의 이름이 '신'으로 시작 → 신* | |
? | 글자 수 1개만 조건 검색 |
ex> 피보험자의 이름 두번째 글자가 '자' → ?자* |
필드크기 | - 글자수가 제한이 있는 경우 사용 ex> 숫자 데이터 형식의 필드 크기 바이트 : 0~255(1바이트) 정수 : -32,768~32768(2바이트) 정수(LONG) : -2,147,483,648 ~ 2,147,483,648 |
형식 | - 원하는 데이터의 형식이 있을 경우 사용 ex> "07월 07일"형식으로 표현 → mm"월" dd"일" |
필수 | - 더블클릭하면 예/아니오 변경 가능 예 : 값이 반드시 입력되어야함 아니오 : 값이 입력되지 않아도 됨 |
빈 문자열 허용 | - 더블클릭하면 예/아니오 변경 가능 예 : 빈 문자열 입력 가능 아니오 : 빈 문자열 입력되지 않음 |
인덱스 | - 더블클릭하면 예/아니오 변경 가능 예(중복가능) : 색인(중복가능) 예(중복불가능) : 색인(중복불가능) 아니오 : 색인 없음 - 인덱스의 고유 설정 |
IME 모드 | - 필드로 포커스 이동 시 설정될 한글 입력기의 상태를 지정 - 현재상태유지, 한글, 한글전자, 여웃자저자, 영숫자 반자 등을 사용 가능 |
[개미의 걸음 3과목 데이터베이스 일반] DB구축③ 테이블 관계 설정 (0) | 2020.12.08 |
---|---|
[개미의 걸음 3과목 데이터베이스 일반] DB구축② 조회 속성 (0) | 2020.12.07 |
[개미의 걸음 2과목 스프레드시트 일반] 기타작업② 프로시저 (0) | 2020.09.06 |
[개미의 걸음 2과목 스프레드시트 일반] 기타작업① 차트 (0) | 2020.09.05 |
[개미의 걸음 2과목 스프레드시트 일반] 분석작업② 매크로 (0) | 2020.09.03 |
댓글 영역