데이터베이스
- 데이터베이스는 여러 사람들이 공유하고 사용할 목적으로 통합관리되는 정보의 집합
- 데이터베이스는 관련성 있는 데이터의 모음
- 은행, 예약, 검색, 쇼핑 등 일상 속에서 이용하고 있는 많은 온라인 서비스들에서 DB를 활용
- 데이터베이스는 반드시 데이터베이스 관리 시스템(DataBase Management System, DBMS)과 함께 한다
데이터베이스의 특징
- 실시간 접근을 지원한다
- 다수의 사용자 혹은 프로그램이 동시에 데이터를 이용할 수 있다
- 데이터에 대한 접근이 용이하다
- 레코드의 주소나 위치가 아닌 내용으로 데이터를 탐색할 수 있다
- 항상 최신의 데이터를 유지한다
데이터베이스 관리 시스템
- 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합
- 대표적인 DBMS는 오라클, MySQL, MS SQL Server, DB2, Maria DB, H2, HSQLDB 등이 있다
- DBMS는 사용자 또는 다픈 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다
- DBMS를 통해 DB를 사용
- 관계형 데이터베이스(Relational DataBase)를 관리해주는 RDBMS가 가장 많이 사용된다
데이터베이스 관리 시스템 장점
- 자료의 통합성을 향상시킨다
- 데이터의 접근성이 쉬워진다
- 데이터의 통제가 강화된다
- 보안이 강화된다
사용자 관점에서의 데이터베이스
- DB는 관련있는 데이터를 모아놓은 것
- 데이터가 많은 경우에 효율적으로 관리하거나 접근관리 등 여러가지 추가적인 기능들을 지원
- 데이터베이스에서 원하는 데이터를 가져올 때는 직접 데이터베이스에 요청하지 않고, DBMS를 통해서 질의하게 된다
- DBMS에 질의하기 위해서는 SQL이라는 언어를 사용한다
- DBMS는 입력된 SQL을 처리하고 필요하다면 DB에 접근하여 작업을 수행한다
- 데이터베이스는 구조화된 데이터를 저장한다
- 현실 세계의 데이터를 데이터베이스에 저장하기 위해서는 모델링 작업이 필요하다
- 관계형 데이터베이스에서는 '객체-관계 모델링(Entity-Relationship Modeling, ERD)' 방법으로 데이터를 모델링한다
관계형 데이터 모델
- 관계형 모델에서는 이론적으로 데이터베이스를 관계(Relation)의 집합으로, 관계를 행(Tuple)의 집합으로, 행을 속성(Attribute)의 집합으로 본다
- 관계형 데이터베이스에서는 관계가 테이블(Table), 행이 레코드(Record), 속성이 컬럼(Column)으로 대치된다
- 관계라는 이름으로 불리는 이유는 속성과 행이 어떤 관계에 의해 모여진 집합으로 보기 때문
- 관계형 데이터 모델에서 속성은 해당 속성이 가질 수 있는 모든 값에 대한 도메인을 가지며, 원자적이어야 한다
- 관계형 데이터베이스에는 관계의 집합과 제약 조건의 집합으로 이루어져 있다
관계형 데이터베이스(Relational Database)
- 관계형 데이터베이스는 테이블(Table)로 구성된다
- 테이블은 행(Row)과 열(Row)로 구성된다
- 데이터베이스를 구성하는 테이블이 다른 테이블과 관계를 맺고 모여있는 집합체다
관계형 데이터베이스의 특징
- 데이터의 분류, 정렬, 탐색속도가 빠르다
- 신뢰성이 높고, 데이터 무결성을 보장해준다
관계형 데이터베이스의 주요용어
이름 | 설명 |
열(Column) | 각각의 열은 고유한 이름, 자신만의 데이터 타입을 가진다 |
행(Row) | 행은 관련된 데이터 묶음 한 테이블에서 모든 행은 같은 수의 컬럼을 가진다 테이블에서 데이터의 추가, 삭제, 변경, 조회 작업은 행 단위로 이루어진다 |
키(Key) | 테이블의 행의 식별자(행을 대표하는 값)로 이용되는 컬럼을 기본 키(Primary Key) 라고 한다 |
관계 | 관계형 데이터베이스에서 테이블간의 관계를 말하고, 관계를 맺고있는 데이터의 수에 따라 나눈다 관계형 데이터에서는 테이블간의 관계를 표현하기 위해서 외래키(Forein Key) 사용 일대일관계 (one - to - one) 일대다관계 (one - to - many) [ 일반적으로 일대다관계를 사용] 다대다관계 (many - to - many) |
스키마(Schema) | 테이블에 대한 청사진 테이블의 각 열에 대한 이름/데이터타입과 기본키/외래키를 나타낸다 스키마는 객체-관계 다이어그램(ERD : Entity-Relationship Diagram)이나 문자열로 나타낸다 |
SQL
- Structured Query Language
- 구조화된 질의언어
- 데이터베이스와 관련된 명령을 작성할 때 사용하는 언어
SQL의 종류
DDL(Data Definition Language)
- 데이터 정의 언어
- 데이터베이스의 구조를 정의하는 명령어
- 데이터베이스의 주요 객체를 생성, 삭제, 변경하는 작업 수행한다
- (주요 객체 : 테이블, 뷰, 인덱스, 시퀀스, 동의어, 트리거, 사용자 ... )
DDL 주요 명령어
명령어 | 설명 |
CREATE | 새로운 데이터베이스 객체 생성 |
DROP | 기존 데이터베이스 객체 삭제 |
ALTER | 기존 데이터베이스 객체 변경 |
TRUNCATE | 데이터를 되돌릴 수 없도록 제거 |
DML(Data Manipulation Language)
- 데이터 조작 언어
- 데이터베이스에서 데이터를 추가, 조회, 변경, 삭제하는 작업을 수행한다
DML 주요 명령어
명령어 | 설명 |
INSERT | 테이블에 새로운 데이터 행을 추가한다 |
SELECT | 테이블에서 데이터를 조회한다 |
UPDATE | 테이블의 데이터를 변경한다 |
DELETE | 테이블에 저장된 특정 데이터 행을 삭제한다 |
DCL(Data Control Language)
- 데이터 제어 언어
- 권한제어, 트랜잭션 제어 작업을 수행한다
DCL 주요 명령어
명령어 | 설명 |
GRANT | 특정 사용자에게 특정 작업을 수행을 권한을 부여 |
REVOKE | 사용자에게 부여된 권한을 박탈 |
COMMIT | 트랜잭션을 실행 |
ROLLBACK | 트랜잭션을 취소 |
SAVEPOINT | 롤백지점을 설정한다 |
SQL의 장점
- 배우기 쉽다 ( 사람의 언어와 유사하다 )
- 효율적이다
- 기능적으로 완벽하다 ( SQL을 사용해서 테이블의 데이터를 정의, 검색, 조작이 가능하다 )
- 1970년에 E.F.Codd박사 데이터베이스 시스템을 위한 관계형 모델을 제안하는 논문발표
'SQL' 카테고리의 다른 글
SQL_오라클 내장함수(변환함수, 기타함수) (0) | 2023.12.12 |
---|---|
SQL_오라클 내장함수 (문자함수, 숫자함수, 날짜함수) (1) | 2023.12.11 |
SQL_오라클의 데이터타입 (2) | 2023.12.07 |
SQL_테이블, DML (2) | 2023.12.06 |
Oracle 설치 (0) | 2023.09.14 |