본문 바로가기

[SQL] 4. SQL 4.2 SQL 개요 비절차적 언어(선언적 언어) - 자신이 원하는 바(what)만 명시 대화식 SQL / 내포된 SQL (C, 코볼) 구성요소 : 데이터 검색, 조작어(삽입, 삭제, 수정) , 정의어, 트랜잭션 제어, 제어어 4.3 데이터 정의어와 무결성 제약조건 데이터 정의어 종류 CREATE DOMAIN / TABLE / VIEW / INDEX ALTER TABLE DROP DOMAIN / TABLE / VIEW / INDEX 스키마 생성&제거 CREATE SCHEMA my_db AUTHORIZATION kim; // 권한부여 DROP SCHEMA my_db RESTRICT; // 제약조건 DROP SCHEMA my_db CASCADE; // 스키마 객체 삭제 릴레이션 정의 예시 CREATE TABL..
[SQL] 1. 데이터베이스 시스템 1.1 데이터베이스 시스템 개요 데이터베이스란, 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임이다. 이 구조는 사용되는 데이터 모델에 의해 결정된다. 또한 여러 사용자 의해 동시 사용, 중복 최소화, 설명 포함(데이터베이스 스키마 or 메타데이터), 프로그램과의 독립성이 있다는 특징을 지닌다. 그리고 보조기억장치에 저장되기 때문에 원하는 정보를 찾으려면 주기억 장치로 읽어들여야 하며, 연산을 위해서는 CPU가 사용된다. 이는 저장된 데이터베이스의 스키마 정보를 유지하는 시스템 카탈로그(system catalog, 데이터 사전)와 저장된 데이터베이스로 구분할 수 있다. 데이터베이스 관리 시스템(DBMS, DataBase Management System) : 데이터베이스 ..
[SQL] 3. 관계 대수 관계 대수에 들어가기에 앞서, 관계 해석과 대수가 어떤 차이점을 가지고 있는지 알아보자. 관계 해석(relational calculus)이란 원하는 데이터만 명시하고 질의를 어떻게 수행할지는 명시하지 않는 선언적 언어이다. 그에 비해 관계 대수(relational algebra)는 어떻게 질의를 수행할지에 대해서도 명시하는 절차적 언어이며, SQL을 구현하고 최적화하기 위해 DBMS 내부 언어로도 사용되고 있다. 그렇다면 관계 대수에서의 연산자들에 대해 알아보자. 1. selection 연산자 : selection 조건(=predicate)을 만족하는 tuple들의 부분 집합 2. projection 연산자 : attribute list에 명시된 attribute만 가지는 attribute들의 부분 집합..
[SQL] 2. 관계 데이터 모델과 제약조건 관계 데이터 모델 : 동일 구조(relation) 관점에서 모든 데이터를 논리적으로 구성 relation(=table, file) : 2차원 테이블, tuple의 집합(중복 허용 X) tuple(=record, row) : relation의 각 행, 순서 중요 X attribute(=column, field) : relation에서 이름을 가진 하나의 column domain : 한 attribute에 나타낼 수 있는 값들의 집합 degree(차수) : 한 relation에 들어있는 attribute 수 cardinality : relation의 tuple 수 null value(널값) : 알려지지 않음(현재 상태에서 알 수 없음) or 적용할 수 없음(존재할 수 없음) relation schema(릴레..