"역사 데이터베이스"의 두 판 사이의 차이
(→Schema) |
|||
104번째 줄: | 104번째 줄: | ||
File:databaseAndSchema.jpg | 데이터베이스와 스키마 | File:databaseAndSchema.jpg | 데이터베이스와 스키마 | ||
</gallery> | </gallery> | ||
+ | |||
+ | |||
+ | ===View=== | ||
+ | *데이터베이스 시스템의 뷰(view)는 다른 릴레이션으로부터 유도된 릴레이션(derived relation)으로서 ANSI/SPARC 3단계 아키텍처의 외부 뷰와 다름. | ||
+ | *뷰는 관계 데이터베이스 시스템에서 데이터베이스의 보안 메카니즘 | ||
+ | *복잡한 질의를 간단하게 표현하는 수단으로서, 데이터독립성을 높이기 위해서 사용됨. | ||
+ | *시스템 카탈로그는 시스템내의 객체(기본 릴레이션, 뷰, 인덱스, 사용자, 접근 권한 등)에 관한 정보를 포함. | ||
+ | *시스템 카탈로그를 적절히 활용하면 원하는 릴레이션을 데이터베이스에서 찾고, 그 릴레이션에 어떤 애트리뷰트들이 들어 있으며, 각 애트리뷰트의 데이터 타입은 무엇인가 등을 쉽게 파악할 수 있음. | ||
+ | *시스템 카탈로그는 데이터베이스를 효율적으로 활용하는데 크게 도움이 됨. | ||
+ | |||
+ | |||
+ | ===System catalogue=== | ||
+ | *시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스. | ||
+ | *시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블임. | ||
+ | *데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장함. | ||
+ | *카탈로그들이 생성되면 자료사전에 저장됨. | ||
+ | *좁은 의미로는 카탈로그 = 자료 사전. | ||
+ | *카탈로그에 저장된 정보를 메타 데이터라고 함. | ||
+ | |||
+ | ====카탈로그의 특징==== | ||
+ | 1. 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해볼 수 있다. | ||
+ | 2. INSERT, DELETE, UPDATE문으로 카탈로그를 갱신하는 것은 허용되지 않는다. | ||
+ | 3. 데이터베이스 시스템에 따라 상이한 구조를 갖는다. | ||
+ | 4. 카탈로그는 DBMS가 스스로 생성하고 유지한다. | ||
+ | 5. 카탈로그의 갱신 : 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신한다. | ||
+ | 6. 분산 시스템에서의 카탈로그 : 보통의 릴레이션, 인덱스, 사용자 등에 정보를 포함할 뿐 아니라 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보를 가져야 한다. | ||
+ | |||
+ | ====시스템 카탈로그의 종류==== | ||
+ | SYSTABLES : 기본 테이블 및 뷰 테이블의 정보를 저장하는 테이블 | ||
+ | SYSCOLUMNS : 모든 테이블에 대한 정보를 열(속성) 중심으로 저장하는 테이블 | ||
+ | SYSVIEW : 뷰에 대한 정보를 저장하는 테이블 | ||
+ | SYSTABAUTH : 테이블에 설정된 권한 사항들을 저장하는 테이블 | ||
+ | SYSCOLAUTH : 각 속성에 설정된 권한 사항들을 저장하는 테이블 | ||
===Graph Modeling=== | ===Graph Modeling=== |
2022년 3월 21일 (월) 07:33 판
목차
데이터베이스
정의
- 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음.
- 데이터베이스 관리 시스템(DBMS)에 의해 제어됨.
- 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 하며 간략하게 데이터베이스라고도 함.
- 대부분의 데이터베이스에서 데이터는 처리 및 데이터 쿼리를 효율적으로 수행하기 위하여 테이블에서 행과 열로 모델됨.
- 데이터를 액세스, 관리, 수정, 업데이트, 제어, 구성하기 위해서 데이터베이스 작성 및 쿼리에 SQL(Structured Query Language)을 사용함.
역사
- 1980년대가 되면서 관계형 데이터베이스가 등장, 인기를 얻음.
- 1990년대에 객체 지향 데이터베이스가 등장.
- 최근 NoSQL 데이터베이스가 등장.
엑셀
- 엑셀(Excel)은 스프레드시트(Spread Sheet)임.
- 사용자 한 명을 위해 설계되었음.
- 복잡하고 많은 데이터 조작을 수행할 필요가 없는 사용자에게 적합함.
- 데이터베이스를 사용하면 여러 사용자가 동시에 로직과 언어를 사용하여 데이터를 쿼리할 수 있음.
관계형 데이터베이스
- 관계형 DBMS(Relational DBMS)는 줄여서 RDBMS.
- 대부분의 DBMS가 RDBMS 형태임.
- RDBMS의 데이터베이스는 테이블(table)이 최소 단위임.
- 이 테이블은 하나 이상의 열(column)과 행(row)으로 이루어져 있음.
- 테이블의 행은 레코드(record)라고 부르기도 함.
- 레코드 하나 = 데이터 한 건.
- 하나의 테이블은 적게는 수백개, 많게는 수백만 개의 레코드를 갖게 됨.
RDBMS종류
- Oracle DB - 뛰어난 기술력과 안정성. 주로 은행 업계에서 사용. 유료.
- MySQL - 오픈 소스. 웹 개발, 특히 PHP를 이용한 개발에 흔히 쓰인다.
- Maria DB - 오라클이 MySQL을 인수하면서 라이선스 문제가 불확실해지자, 이에 반발하여 만들어짐.
- PostgreSQL - 버클리 대학의 프로젝트 오픈 소스 ORDBMS. (ORDBMS: 객체-관계형 데이터베이스 관리 시스템)
- SQL Server - 마이크로소프트가 개발한 RDBMS. 윈도우 시스템 환경 지원.
- SQLite - DB를 서버가 아닌 파일로 저장하는 DBMS이다. 가벼운 DB를 저장하는 목적으로 설계됨. 안드로이드, iOS, mac OS에서 사용됨.
SQL
- SQL은 데이터를 쿼리, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어.
- SQL은 1970년대에 IBM에서 처음 개발.
- IBM, Oracle, Microsoft에서 확장 프로젝트를 진행하였음.
OOP
- Object Oriented Programming
- 절차 지향 프로그래밍
let baseSalary = 30_000; let overtime = 10; let rate = 20; function getWage(baseSalary, overtime, rate){ return baseSalary + (overtime * rate); }
- 객체 지향 프로그래밍
let employee = { baseSalary :30_000, overtime: 10, rate: 20, getWage: function(){ return this.baseSalary + (this.overtime * this.rate); } }; employee.getWage();
Schema
- 데이터베이스 스키마(database schema)는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조.
- 데이터베이스 DBMS이 주어진 설정에 따라 데이터베이스 스키마를 생성함.
- 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행함.
- 스키마는 데이터베이스를 구성하는 데이터 개체의 전반적인 명세(Specification)를 기술(Description)하는 메타데이터(MetaData)의 집합.
- 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 갖고 있는 것.
- 스키마는 3층 구조임.
스키마의 3 계층 외부 스키마 = 서브 스키마 = 사용자 뷰
- 스키마, 개념 스키마, 내부 스키마 스키마는 데이터 사전에 저장되며 메타 데이터MetaData라고도 한다.
외부스키마 : 개인의 입장, '서브스키마'라고도 한다, 사용자 뷰를 가리킨다.
하나의 외부스키마는 여럿이 공유 가능하며, 하나의 DB시스템에 여러 개의 외부스키마가 존재 가능
내부스키마 : 시스템 프로그래머나 설계자의 관점에서 바라보는 스키마,
데이터베이스의 물리적 구조를 가리킴(= 실제 저장방법을 기술하는 물리적인 저장장치와 관련됨)
개념스키마 : 조직 전체의 입장, 전체적인 뷰를 가리킨다.
개체간의 관계와 제약조건을 나타내고, 데이터베이스의 접근권한/보안/무결성 규칙에 대한 명세를 정의함,
- 일반적으로 '스키마'라는 내부스키마를 가리킴.
- 내부스키마는 DBA가 만듦, 데이터베이스의 전체적인 구조로써 하나만 존재해야 함
View
- 데이터베이스 시스템의 뷰(view)는 다른 릴레이션으로부터 유도된 릴레이션(derived relation)으로서 ANSI/SPARC 3단계 아키텍처의 외부 뷰와 다름.
- 뷰는 관계 데이터베이스 시스템에서 데이터베이스의 보안 메카니즘
- 복잡한 질의를 간단하게 표현하는 수단으로서, 데이터독립성을 높이기 위해서 사용됨.
- 시스템 카탈로그는 시스템내의 객체(기본 릴레이션, 뷰, 인덱스, 사용자, 접근 권한 등)에 관한 정보를 포함.
- 시스템 카탈로그를 적절히 활용하면 원하는 릴레이션을 데이터베이스에서 찾고, 그 릴레이션에 어떤 애트리뷰트들이 들어 있으며, 각 애트리뷰트의 데이터 타입은 무엇인가 등을 쉽게 파악할 수 있음.
- 시스템 카탈로그는 데이터베이스를 효율적으로 활용하는데 크게 도움이 됨.
System catalogue
- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스.
- 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블임.
- 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장함.
- 카탈로그들이 생성되면 자료사전에 저장됨.
- 좁은 의미로는 카탈로그 = 자료 사전.
- 카탈로그에 저장된 정보를 메타 데이터라고 함.
카탈로그의 특징
1. 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해볼 수 있다. 2. INSERT, DELETE, UPDATE문으로 카탈로그를 갱신하는 것은 허용되지 않는다. 3. 데이터베이스 시스템에 따라 상이한 구조를 갖는다. 4. 카탈로그는 DBMS가 스스로 생성하고 유지한다. 5. 카탈로그의 갱신 : 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신한다. 6. 분산 시스템에서의 카탈로그 : 보통의 릴레이션, 인덱스, 사용자 등에 정보를 포함할 뿐 아니라 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보를 가져야 한다.
시스템 카탈로그의 종류
SYSTABLES : 기본 테이블 및 뷰 테이블의 정보를 저장하는 테이블 SYSCOLUMNS : 모든 테이블에 대한 정보를 열(속성) 중심으로 저장하는 테이블 SYSVIEW : 뷰에 대한 정보를 저장하는 테이블 SYSTABAUTH : 테이블에 설정된 권한 사항들을 저장하는 테이블 SYSCOLAUTH : 각 속성에 설정된 권한 사항들을 저장하는 테이블
Graph Modeling
- 칠판에 그려둔 엔티티(entity) 간의 관계를 데이터베이스상으로 가지고 옴.