데이터베이스
'정보화 시대' 현대사회를 칭하는 말이다. 이처럼 우리의 일상은 많은 정보와 관계를 맺고있다. 이런 정보 중 '기업이나 조직 또는 개인이 필요에 의해(부가가치를 생성) 데이터를 일정한 형태로 저장해 놓은것'을 데이터베이스라고 한다.
저장된 데이터는 필요에 따라 검색, 수정, 삭제될 수 있다.
<이미지 추가 필요>
데이터베이스의 발달 과정
1960년대
플로우차트 중심의 개발방법을 사용하였으며 파일구조를 통해 데이터를 저장하고 관리하였다.
1970년대
계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스가 사용되었으며, E.F Codd박사에 의해 관계형 데이터베이스가 소개되었다.
1980년대
Oracle, Sysdba, DB2와 같은 관계형 데이터베이스가 사용되었다.
1990년대
Oracle, Sysdba, DB2, Infomix, SQL Server 등 많은 RDB가 사용되었으며, 인터넷 환경의 발전과 객체지향정보를 지원하기 위해 객체 관계형 데이터베이스로 발전되었다.
데이터베이스에 관리하는 데이터의 양이 많아지고 여러 사람이 데이터에 접근하면서 파일 구조의 형태로 관리하기에 문제점들이 발생하였다.
파일시스템의 문제점
- 데이터 접근 제한 : 하나의 파일을 여러 사용자가 동시에 검색할 수는 있지만 동시에 입력, 수정, 삭제할 수 없다.
- 데이터 종속성 : 응용프로그램과 데이터간의 상호 의존 관계를 말한다.
- 데이터 중복성 : 하나의 데이터에 대해서 여러 사용자가 각자 파일을 관리할 경우로 데이터가 중복 관리되며, 변경 내역이 모두 반영이 안될경우 데이터 불일치가 초래된다.
- 데이터 분실 : 사용자 부주의로 인한 데이터 삭제될 수 있다.
네트워크 환경에서 여러 사용자가 데이터를 보다 효율적으로 관리가 필요하였으며,관계형 데이터베이스의 정규화를 통하여 합리적인 테이블 모델링을 통해 이상(ANOMALY) 현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작 할 수 있어 관계형 데이터베이스가 대두되었다.
관계형 데이터베이스
관계형 데이터베이스 정의
- 통합된 데이터(integrated data) : 똑같은 데이터가 원칙적으로 중복되어 있지 않다는 것을 말한다.
- 저장된 데이터(stored data) : 컴퓨터가 접근할 수 있는 기억장치에 저장된 데이터를 말한다.
- 운영 데이터(operational data) : 존재 목적이 명확하고 유용성을 지니고 있는 데이터를 말한다.
- 공용 데이터(shared data) : 여러 사용자들이 서로 다른 목적으로 사용하는 공유 가능한 데이터를 말한다.
관계형 데이터베이스 특징
- 실시간 접근성 : 수시적이고 비정형적인 질의(query)에 대하여 실시간 처리로 응답할 수 있어야 한다.
- 지속적인 변화 : 저장된 데이터는 최신의 정보가 정확하게 저장되어 처리 되어야 한다.
- 동시 공유 : 동일 데이터를 동시에 서로 다른 목적으로 사용할 수 있어야 한다.
- 내용에 대한 참조 : 데이터베이스 내에 있는 데이터 레코드들은 주소나 위치에 의해 참조되는 것이 아니라 가지고 있는 값에 따라 참조해야 한다.
관계형 데이터베이스 구조
- 논리적 구조로 표현한 데이터베이스 => 논리적 데이터베이스 => 사용자 입장
- 물리적 구조로 표현한 데이터베이스 => 물리적 데이터베이스 => 실제 저장 구조
테이블(Table)
관계형 데이버베이스의 기본 단위의 형태는 테이블이다. 모든 자료는 테이블에 등록되고, 테이블로부터 자료를 얻어온다.
비고) 테이블은 반드시 하나 이상의 컬럼을 가져야 한다.
<이미지 하나 추가 필요>
테이블은 세로 방향을 컬럼(Column), 가로 방향을 행(Row)로 하는 2차원 구조로 나타내며, 각 Cell을 필드(Field)라한다. 각 행을 구부짓는 한개 이상의 컬럼을 기본키(Primary Key)라 하며, 테이블간의 관계를 연결하는 컬럼을 외부키(Foreign Key)라고 한다.
비고)
테이블은 릴레이션(Relation)이라고 부르기고 한다.
컬럼은 레코드(Record), 튜플(Tuple)로 부르기도 한다.
행은 애트리뷰트(attribute)로 부르기도 한다.
DBMS(DataBase Management System-데이터베이스 관리 시스템)
DBMS란?
기업이 지속적으로 유지 관리해야 하는 데이터의 집합을 데이터베이스(DataBase)라 하며, 이러한 방대한 양의 데이터를 편리하게 저장하고 효율적으로 관리하고 검색할 수 있는 환경을 제공 해 주는 시스템 소프트웨어를 데이터베이스 관리 시스템(DataBase Management System)이라고 하며, 일반적으로 약어로 DBMS라고 합니다. DBMS는 데이터를 공유하여 정보의 체계적인 활용을 가능하게 합니다.응용 프로그램과 데이터베이스의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리해 주는 소프트웨어 시스템입니다.
DBMS 사용자
- 데이터베이스 관리자(DBA) : 데이터베이스 설계와 정의, 관리 및 운영 등 데이터베이스 시스템을 관리하고 제어하는 사용자 입니다.
- 응용 프로그래머 : 응용 프로그래머는 데이터베이스를 실제적으로 설계하여 최종 사용자들의 요구에 맞는 인터페이스와 응용 프로그램 개발 합니다.
- 최종 사용자 : 데이터베이스를 실질적으로 사용하는 사용자합니다.
SQL
SQL(Structured Query Language)은 RDB(Relational Database)에서 데이터베이스에 질의, 수정, 삭제 등의 작업을 하는 언어의 표준으로 채택되어 어떤 제품이든지 약간의 문법적 차이를 제외하고는 대동소이하며, 따라서, 오라클에서 사용하는 문법과 MS-SQL의 문법은 큰 차이가 없습니다.
SQL이란
- SQL(Structured Query Language)은 RDB(Relational Database)에서 데이터베이스에 질의, 수정, 삭제 등의 작업을 하는 언어의 표준으로 채택되어 어떤 제품이든지 약간의 문법적 차이를 제외하고는 대동소이하며, 따라서, 오라클에서 사용하는 문법과 MS-SQL의 문법은 큰 차이가 없습니다.
SQL문장 종류
명령어 분류 |
명령어 |
설 명 |
DQL Data Query Language (질의어) |
SELECT |
데이터 검색시 사용한다. |
DML Data Manipulation Language (데이터 조작어) |
INSERT |
데이터 입력시 사용한다. |
UPDATE |
데이터 입력시 사용한다. |
|
DELETE |
데이터 입력시 사용한다. |
|
DDL Data Definition Language (데이터 정의어) |
CREATE |
데이터베이스 객체 생성한다. |
ALTER |
데이터베이스 객체 변경한다. |
|
DROP |
데이터베이스 객체 삭제한다. |
|
RENAME |
데이터베이스 객체 이름 변경한다. |
|
TRUNCATE |
데이터베이스 객체의 저장 공간 삭제한다. |
|
TCL Transaction Control Language (트랜잭션 처리어) |
COMMIT |
트랜젝션의 정상적인 종료 처리한다. |
ROLLBACK |
트랜잭션 취소한다. |
|
SAVEPOINT |
트랜잭션내에 임시 저장점 설정한다. |
|
DCL Data Control Language (데이터 제어어) |
GRANT |
데이터베이스에 대한 일련의 권한 부여한다. |
REVOKE |
데이터베이스에 대한 일련의 권한 취소한다. |
기타 용어
정보처리시스템
- 정보 처리(information processing)라고하며 컴퓨터가 정보를 생성하기 위해 데이터를 처리하는 작업
정보와 데이터
- 데이터(data) : 현실 세계로 부터 단순한 관찰이나 측정을 통해서 수집된 사실이나 값
- 정보(information) : 어떤 상황에 대한 적절한 의사 결정을 할 수 있게 하는 지식으로 데이터의 유효한 해석이나 데이터 상호간의 관계
정보 시스템(information system)
- 한 조직체의 활동에 필요한 데이터를 수집, 조직, 저장해 두었다가 필요시에 처리해서 의사 결정에 유효한 정보를 생성하고, 분배하는 수단
감사합니다.