[Oracle] Database
Database
여러 사람이 공동으로 공유하여 사용할 목적으로
통합하여 관리되는 저장된 형태의 데이터의 집합
자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신 등 운영의 효율을 높인 데이터의 집합
하나의 database에는 여러 table(데이터가 저장된다)들로 구성되어 있다
보통 database 설계라고 하면 database 안에 들어가는 table과 그 관계를 설계하는 것을 말한다
DBMS(database management system)
사용자와 데이터베이스 사이에서 사용자의 요구(query)에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어 집합이다
Table
각 table은 열(field)와 행(record)로 구성되어 있다
열 : column, field, attribute로 불리고 테이블의 구조(schema)를 표현한다
행 : row, record, tuple라고 불린다
테이블의 구조를 테이블 스키마(schema)라고 부른다
Table - KEY
테이블에서 특정 record를 검색하거나 정렬 할 수 있는 기준이 되는 field가 있을 수 있는데 이러한 field를 키 라고 한다
database에서는 record를 구분하기 위해 '특별히 선정한 키'를 primary key(pk, 기본키) 라고 한다
* primary key로 설정한 field에는 중복된 값이 들어올 수 없고(unique), 비워둘 수 없다(null)
관계형 데이터베이스(RDB)
각각의 테이블 스키마에 있어서 어떤 테이블의 필드가 다른 테이블의 필드와 관계성을 가지는 구조로 만드는 것
SQL(structured query language)
구조화된 질의 언어
RDBMS에서 데이터를 다루기 위한 목적으로 설계된 프로그래밍 언어
SQL 문법으로 짜여진 query문으로 DBMS에 실행(execute)하면, DBMS는 그에 따른 결과를 보내준다
일반 ODBC/JDBC 프로그래밍에서 데이터베이스를 공부한다는 것은 쿼리(SQL)을 배우는 것을 말한다
database 대표 SQL 명령어
DML(data manipulation language) | SELECT, INSERT, DELETE, UPDATE -> 테이블 내의 record나 field을 다루는 명령어 |
DDL(data definition language) | CREATE, ALTER, DROP, TRUNCATE |
DCL(data control language) | GRANT, REVOKE |
TCL(transaction control language) | COMMIT, ROLLBACK - DCL로 분류 |
DQL(data query language) | SELECT |
-참고
database 종류
database는 크게 관계형 데이터베이스(RDB)와 NoSQL(Not Only SQL)로 나뉜다
1. 관계형 데이터베이스(RDB)
행과 열로 구성된 테이블 간의 관계를 나타낼 때 사용하며 이렇게 표현된 database는 SQL을 통해 관리 및 접근한다
[RDB 종류]
Oracle, MySQL(Oracle) / MS-SQL(Microsoft) / DB2, Infomix(IBM) / Maria DB(Sun Microsystems) / Derby(Apache) / SQLite(Opensource)
2. NoSQL(Not Only SQL)
RDB의 특성 뿐만 아니라 다른 특성까지도 지원해주는 데이터베이스라는 의미를 지닌다
장점 : 대용량 데이터를 다루거나 데이터 분산 처리에 용이. 유연한 데이터 모델링이 가능하다
[NoSQL 종류]
1) Document방식
2) Key - Value 방식
3) Big Table DB
RDB | NoSQL |
scale-up | scale-out |
무결성 | 유연성 |
중복을 허용하지 않는다 | 중복을 허용한다 |
3. 그 외 DB
계층형 데이터베이스 : 데이터간의 관계가 트리 구조인 데이터 모델 사용
네트워크형 데이터베이스 : 데이터간의 다양한 관계가 그물망과 같은 모델 사용