DataBase
1-1. 데이터와 데이터베이스,DBMS
데이터베이스는 데이터(data)와 베이스(base)의 합성어이며 DBMS는 Database Management System의 약자로
'데이터베이스 관리 시스템'을 의미합니다.
데이터와 정보
어학 사전에서 '데이터'를 찾아보면 '자료', '정보'라는 두 가지 의미가 있습니다. 그러나 데이터베이스 분야에서
데이터(data)와 정보(information)는 다른 의미로 해석합니다. 흔히 데이터를 원석, 정보를 보석으로 비유합니다.
아직 제련되지 않은 원석과 그 원석을 가공하여 새로운 가치를 지니게 된 보석, 이 두 단어의 관계가 의미하는 바를
파악하면 어렵지 않게 데이터와 정보를 구별할 수 있습니다.
즉 데이터는 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값이나 사실 또는 자료 자체를
의미합니다. 그리고 정보는 수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과로 볼 수 있습니다.
'잘 수집된 데이터를 분석하고 가공하면 새로운 가치를 만들어 낼 수 있는 정보를 얻을 수 있다'
여러가지 방법으로 수집한 데이터는 분석을 위한 통합 작업만으로도 시간과 비용이 많이들고 데이터가 여기저기 흩어져 있다면 데이터를 정확하게 찾아내는 것은 쉽지 않습니다.
만일 데이터가 누락되거나 중복된다면 정확한 분석을 기대할 수 없고 결국 비싼 비용과 많은 시간을 투자한 분석이 실패하게 됩니다. 따라서 가치있는 정보를 얻으려면
조건에 맞게 "데이터를 효율적으로 수집/통합하고 체계적으로 관리/분석"해야 합니다.
[효율적인 데이터 관리를 위한 조건]
- 데이터를 통합하여 관리
- 일관된 방법으로 관리
- 데이터 누락 및 중복 제거
- 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능
위 조건을 만족하면서 특정 목적을 위해 여러 사람이 공유하여 사용할 수 있으며, 효율적인 관리와 검색을 위해 구조화한 데이터 집합을 "데이터베이스"라고 합니다.
파일 시스템과 DBMS
데이터베이스 개념이 등장하기 전에는 주로 파일 시스템 방식을 사용하여 데이터를 관리했습니다.
파일 시스템을 통한 데이터 관리
파일 시스템은 서로 다른 여러 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 각각 저장하고 관리합니다.
따라서 각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락이 발생할 수 있습니다.
파일 시스템을 단층 파일 구조(flat file structure)라고 합니다.
데이터가 각 응용 프로그램별로 흩어져 있으면 문제가 발생할 수 있습니다.
관련된 일련의 데이터를 한곳에 모아 관리하고, 이렇게 한곳에 모아둔 데이터를 각각의 응용 프로그램이 함께 사용하면
응용 프로그램별로 데이터를 직접 관리할 때 발생할 수 있는 데이터의 오류, 누락, 중복 등의 문제를 해결할 수 있습니다.
이렇게 여러 응용 프로그램이 사용할 데이터를 한곳에서 관리하기 위해 데이터베이스를 활용합니다.
DBMS를 통한 데이터 관리
효율적인 데이터 관리 조건을 만족하며 서비스 제공의 효율성을 높이기 위해 데이터베이스 관리 시스템이 등장했습니다.
데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어입니다.
데이터베이스 관리 시스템은 보통 '디비엠에스(DBMS:DataBase Management System)'라고 많이 부르며 실무에서는
데이터베이스 관리 시스템을 따로 구별하지 않고 '디비(DB)' 또는 '데이터베이스'라고 부릅니다.
데이터베이스를 통한 데이터 관리란 여러 목적으로 사용할 데이터의 접근/관리 등의 업무를 DBMS가 전담하는 방식을
말합니다. 다시 말해 응용 프로그램이 필요한 데이터 작업을 DBMS에 요청하면 DBMS는 자신이 관리하는 데이터베이스로
관련 작업을 수행하고 결과 값을 제공합니다.
이러한 작업 영역의 분리는 응용 프로그램의 서비스 제공과 데이터 관련 작업 효율을 높입니다. 또한 여러 응용 프로그램이 하나의 통합된 데이터를 같은 방식으로 사용/관리할 수 있으므로 데이터 누락이나 중복을 방지할 수 있습니다.
DBMS는 다음 표와 같이 파일 시스템 기반 방식의 문제를 해결하면서 데이터 관리의 패러다임을 바꾸었습니다.
파일 시스템 방식의 문제 | ▶ ▶ |
DBMS를 통한 데이터 관리 |
데이터 중복 | 하나의 소프트웨어가 데이터를 관리하므로 데이터 중복을 피할 수 있음 | |
응용 프로그램이 개별 데이터를 직접 관리 | 여러 응용 프로그램이 하나의 DBMS를 통해 데이터를 사용하므로 데이터를 동시에 공유할 수 있음 |
|
응용 프로그램이 데이터를 쓰는 방식이 각각 다름 | 하나의 DBMS를 통해 데이터를 관리하기 때문에 각각의 응용 프로그램이 데이터를 관리하는 방식이 통합됨 |
|
데이터가 특정 응용 프로그램에 종속되어 있으므로 응용 프로그램을 변경하면 기존 데이터를 사용할 수 없음 | 응용 프로그램과는 별도로 데이터가 DBMS에 의해 관리/보관되기 때문에 응용 프로그램의 업데이트 또는 변경과 관계없이 데이터를 사용할 수 있음 |
1-2. 데이터 모델
데이터 모델이란 컴퓨터에 데이터를 저장하는 방식을 정의해 놓은 개념 모형입니다. 대표적인 모델에는
계층형, 네트워크형, 관계형, 객체 지향형 등이 있습니다.
계층형 데이터 모델과 네트워크형 데이터 모델
계층형 데이터 모델(hierarchical data model)과 네트워크형 데이터 모델(network data model)은 1960년대 말부터 1980년대 말까지 상업용 데이터베이스 시장에서 많이 사용한 데이터 모델입니다.
계층형 데이터 모델
계층형 데이터 모델은 나뭇가지 형태의 트리(tree) 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리합니다. 계층형 데이터 모델을 이해하기 위해서는 일대다(1:N)관계의 데이터 구조를 파악해야합니다. 이 모델에서 데이터가 저장된 파일은 상위 개념에 하위 개념이 포함되어 있는 특징이 있습니다. 기본적으로 하나의 부모 개체가 여러 자식을 가질 수 있는 반면에 자식 개체는 여러 부모를 가질 수 없다는 제약이 있습니다. 따라서 일대다
구조의 데이터를 표현하기에는 알맞지만 자식 개체가 여러 부모를 가진 관계는 표현할 수 없습니다.
네트워크형 모델
네트워크형 데이터 모델은 망형 데이터 모델이라고도 하며 그래프(graph) 구조를 기반으로 합니다.
개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다는 점에서
계층형 데이터 모델과 차이가 있습니다.
객체 지향형 데이터 모델
객체 지향형 데이터 모델(object - oriented data model)은 1980년대 후반에 등장한 모델로 객체 지향 프로그래밍에서 사용하는 객체 개념을 기반으로 한 데이터 모델입니다. 그리고 객체 지향 프로그래밍처럼 데이터를 독립된 객체로 구성하고
관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에서 사용되는 강력한 기능을 활용할 수 있습니다. 하지만
이러한 객체 지향형 모델 개념을 완전히 데이터베이스에 적용하는 것은 쉽지 않기 때문에 이를 적용한 상용 DBMS는
많지 않습니다. 다만 오라클 데이터베이스와 같은 여러 DBMS 제품군이 관계형 데이터 모델을 바탕으로 객체 개념을 도입하여 '객체 관계형(object - relational data model) DBMS'로 영역을 확장하고 있습니다.
관계형 데이터 모델
관계형 데이터 모델(relational data model)은 1970년 에드거 프랭크 커드(E.F.Codd)가 제안한 모델로서 현재 가장 많이
사용하는 관계형 데이터베이스의 바탕이 되는 모델입니다. 관계형 데이터 모델은 다른 모델과 달리 데이터 간 관계에 초점을 둡니다. 관계형 데이터 모델에서는 데이터를 일정 기준으로 나누어 관리합니다. 이를 위해 다양한 개념과 여러 구성 요소가 존재합니다. 다음은 관계형 데이터 모델의 핵심 구성 요소를 간단히 표로 정리한 내용입니다.
이름 | 설명 |
개체(entity) | 데이터베이스에서 데이터화하려는 사물, 개념의 정보 단위입니다. 관계형 데이터베이스의 테이블(table) 개념과 대응되며 테이블은 릴레이션(relation)으로 표기하기도 합니다. |
속성(attribute) | 개체를 구성하는 데이터의 가장 작은 논리적 단위로서 데이터의 종류/특성/상태 등을 정의합니다. 관계형 데이터베이스는 열(column) 개념과 대응됩니다. |
관계(relationship) | 개체와 개체를 또는 속성 간의 연관성을 나타내기 위해 사용합니다. 관계형 데이터베이스에서는 테이블 간의 관계를 외래키(foreign key) 등으로 구현하여 사용합니다. |
이 핵심 구성 요소를 활용하여 데이터의 독립성(independency)과 무결성(integrity)과 같은 데이터를 안전하게 관리하기 위해 필요한 개념들을 정의하게 됩니다.
오라클 데이터베이스를 포함한 여러 관계형 데이터베이스가 관계형 데이터 모델을 바탕으로 하고 있습니다.
1-3. 관계형 데이터베이스와 SQL
관계형 데이터베이스란
관계형 데이터베이스는 관계형 데티어 모델 개념을 바탕으로 데이터 저장/관리하는 데이터베이스를 의미합니다.
관계형 데이터베이스를 관리하는 시스템은 DBMS에 데이터 간의 관계를 강조하기 위한 'relational'을 앞에 붙여
RDBMS(Relational Database Management System), 즉 관계형 데이터베이스 관리 시스템이라고 부릅니다.
MS-SQL, MySQL, MariaDB, PostgreSQL, DB2 그리고 오라클 등 유명한 DBMS 제품은 대부분 관계형 데이터베이스
관리 시스템이거나 최소한 부분적으로 관계형 데이터베이스를 사용하고 있습니다.
SQL이란
SQL은 Structured Query Language의 약자로서 '에스큐엘' 또는 '시퀄'이라고 부릅니다.
SQL은 RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어입니다.
예를 들어 어떤 사용자가 응용 프로그램에 SQL을 사용하여 '우리 회사 각 부서별 사원이 몇명인지 가르쳐 줘',등의
데이터 관련 내용을 데이터베이스에 물어보면 데이터베이스는 그 결과를 제공합니다. 즉 SQL을 통해 데이터베이스에서
여러 데이터 관련 작업을 수행할 수 있습니다.
SQL은 사용 목적에 따라서 다음과 같이 나뉩니다.
종류 | 설명 |
DQL(Data Query Language) | RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어 |
DML(Data Manipulation Language) | RDBMS 내 테이블의 데이터를 저장/수정/삭제하는 명령어 |
DDL(Data Definition Language) | RDBMS 내 데이터관리를 위해 테이블을 포함한 여러 객체를 생성/수정/삭제하는 명령어 |
TCL(Transaction Control Language) | 트랜잭션 데이터의 연구 저장/취소 등과 관련된 명령어 |
DCL(Data Control Language) | 데이터 사용 권한과 관련된 명령어 |
잊기 전에 한 번 더
Q1. 효율적인 데이터 관리를 위한 조건에 해당하는 핵심 단어를 적어 보세요.
- 데이터를 ㅁㅁ하여 관리
- ㅁㅁㅁ방법으로 데이터를 관리
- 데이터 ㅁㅁ 및 ㅁㅁ을 제거
- 여러 사용자(응용 프로그램 포함)가 ㅁㅁ으로 ㅁㅁㅁ사용 가능
정답 : 통합, 일관된, 누락, 중복, 공동, 실시간
Q2. 데이터 관리를 위한 두 가지 방식에 해당하는 단어를 적어 보세요.
ㅁㅁㅁ을 사용한 데이터 관리는 서로 다른 응용 프로그램에 필요한 데이터를 각자 독립적인 방법으로 저장/관리하는 방식입니다.
ㅁㅁㅁ를 통한 데이터 관리는 데이터의 접근 및 관리를 위한 유일한 프로그램인 DBMS가 데이터 관련 작업을 전담하는 방식입니다.
정답 : 파일 시스템, 데이터베이스
Q3. 다음은 어떤 데이터 모델에 관한 설명일까요 ?
1970년 에드거 프랭크 커드가 제안한 모델
현재 가장 많이 사용하는 모델
데이터 간의 관계에 주안점을 둠
정답 : 관계형 데이터 모델
'javaboiii의 DataBase > DB 요약정리(Do it! 오라클 데이터베이스)' 카테고리의 다른 글
DB -10) 데이터를 추가, 수정, 삭제하는 데이터 조작어 (0) | 2024.07.30 |
---|---|
DB -6) 데이터 처리와 가공을 위한 오라클 함수 (1) | 2024.07.29 |
DB -5) WHERE절과 연산자 (0) | 2024.07.28 |
DB - 4) SELECT문의 기본 형식 (0) | 2024.07.27 |
DB -2) 관계형 데이터베이스와 오라클 데이터베이스 (0) | 2024.07.27 |