01. 데이터와 데이터베이스,DBMS
m DBMS : 데이터 베이스 관리 시스템
m 데이터와 정보
n 데이터 : 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값이나 사실 또는 자료 자체
n 정보 : 수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과
n 가치 있는 정보를 얻으려면 조건에 맞게 데이터를 효율적으로 수집 통합하고 체계적으로 관리 분석
n 효율적인 데이터 관리를 위한 조건
u 데이터를 통합하여 관리
u 일관된 방법으로 관리
u 데이터 누락 및 중복 제거
u 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능
n 데이터베이스 : 구조화된 데이터의 집합 (위 조건 만족하면서!)
m 파일 시스템과 DBMS
n 파일 시스템을 통한 데이터 관리
n 서로 다른 여러 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 각각 저장하고 관리
n 각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락 발생 가능
n 단층 파일 구조
m DBMS를 통한 데이터 관리
n 여러 목적으로 사용할 데이터의 접근∙관리 등의 업무를 DBMS가 전담하는 방식
n DBMS라는 하나의 소프트웨어가 데이터를 관리
n 응용 프로그램이 필요한 데이터작업을 DBMS에 요청하면 DBMS가 자신이 관리하는 데이터베이스로 관련 작업을 수행하고 결과값을 제공
n 작업영역의 분리
응용 프로그램의 서비스 제공과 데이터 관련 작업 효율 높임
데이터의 누락이나 중복 방지
02. 데이터 모델
m 계층형 데이터 모델
n 트리 구조 활용
n 데이터 관련성을 계층별로 나눔 -> 부모 자식 같은 관계
n 일대다(1:N) 관계의 데이터 구조를 파악해야 함
n 부모는 여러 개체 자식 가질 수 있고, 자식은 하나의 부모만 가질 수 있음
m 네트워크형 데이터 모델
n 망형 데이터 모델
n 그래프 구조 기반
n 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있음
m 객체 지향형 데이터 모델
n 객체 개념 기반으로 한 데이터 모델
n 데이터를 독립된 객체로 구성하고 관리
n 상속, 오버라이드 등 객체 지향 프로그래밍의 강력한 기능 사용할 수 있음
n DBMS에 적용하기 힘들어서 드물다만 오라클 DBMS는 관계형 모델을 바탕으로 객체 개념 도입!
è 객체 관계형 DBMS로 영역 확장
m 관계형 데이터 모델
n 데이터 간 관계에 초점
n 각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눔
중복이 발생할 수 있는 데이터는 별개의 릴레이션으로 정의한 후 데이터들을 연결
n 데이터 묶음 : 개체 집합(entity set) -> table, relation
데이터 묶음 간의 관계 : 관계 (relationship)
n 관계형 데이터 모델의 핵심 구성요소
u 개체(entity) : 데이터베이스에서 데이터화하려는 사물, 개념의 정보 단위
관계형 데이터베이스의 table, relation
u 속성(attribute) : 개체를 구성하는 데이터의 가장 작은 논리적 단위
데이터의 종류∙특성∙상태 등을 정의
관계형 데이터베이스의 column
u 관계(relationship) : 개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용
관계형 데이터베이스의 외래키 관계
03. 관계형 데이터베이스와 SQL
m 관계형 데이터베이스
n 관계형 데이터 모델 개념을 바탕으로 데이터를 저장∙관리하는 데이터베이스
n RDBMS (relational database management system)
n MS_SQL, MySQL, MariaDB, PostgreSQL, DB2, Oracle 등의 DBMS가 여기에 속함
m SQL
n RDBMS 데이터베이스 질의 언어
n 구분 – 사용 목적에 따른 분류
u DQL(Data Query Language) : 저장한 데이터를 원하는 방식으로 조회하는 명령어
u DML(Data Manipulation Language) : 테이블의 데이터를 저장∙수정∙삭제하는 명령어
u DDL(Data Definition Language) : 데이터 관리를 위해 테이블을 포함한 여러 객체를
생성∙수정∙삭제하는 명령어
u TCL(Transaction Control Language) : 트랜잭션 데이터의 영구 저장∙취소 등과 관련된 명령어
u DCL(Data Control Language) : 데이터 사용 권한과 관련된 명령어