자료구조
프로그램에서 사용할 자료를 기억장치에 저장하는 방법과 저장된 그룹 내의 자료 간의 관계, 처리 방법 등 연구 분석
동일 자료 형의 데이터들을 같은 크기로 나열하여 순서를 갖고 있는 집합
일정한 순서에 의해 나열된 자료 구조이며, 연속 리스트와 연결 리스트가 있다.
일정한 순서에 의해 나열된 자료 구조(배열 사용)
자료 항목 순서에 따라 노드 포인터 부분을 이용하여 연결시킨 자료 구조
리스트의 한쪽으로만 자료 삽입·삭제가 이루어짐
LIFO(Last In First Out, 후입선출)
방식오버플로우(Overflow)
: 기억공간 꽉 찬 상태에서 데이터 삽입 시 발생언더플로우(Underflow)
: 기억공간 텅 빈 상태에서 데이터 삭제 시 발생리스트 한쪽에서 삽입, 다른 한쪽에선 삭제 작업이 이루어지는 자료구조
FIFO(First In First Out, 선입선출)
방식노드(Node)과 가지(Branch)를 이용하여 사이클 없이 구성한 그래프 형태의 자료구조
노드(Node)
, 노드를 연결하는 선은 링크(Link)
근노드(Root Node)
: 트리 맨 위의 노드디그리(Degree)
: 각 노드에서 뻗어나온 가지 수단말노드(잎 노드)
: 자식이 없는 노드트리의 디그리
: 노드들의 디그리 중 가장 많은 수DBMS
데이터들을 논리적 구조로 조직화하거나 물리적 공간에 구현한 것
논리 데이터저장소는 데이터 및 데이터 간 연간성, 제약 조건 등을 식별하여 논리적 구조로 조직화
물리 데이터저장소는 논리 데이터저장소에 저장된 데이터와 구조들을 하드웨어적 저장장치에 저장
통합된 데이터(Integrated Data)
: 자료의 중복 최소화저장된 데이터(Stored Data)
: 컴퓨터가 접근 가능한 저장 매체에 저장 운영 데이터(Operational Data)
: 조직의 고유 업무 수행 시 필요한 자료공용 데이터(Shared Data)
: 시스템을 공동으로 소유·유지DBMS의 필수 기능 : 정의
, 조작
, 제어
정의 기능(Definition)
: 데이터베이스에 저장될 데이터 타입·구조 정의, 이용 방식, 제약 조건 명시조작 기능(Mainoulation)
: 데이터 검색, 갱신, 삽입, 삭제 등 수행할 때 사용자-데이터베이스 간 인터페이스 제공제어 기능(Control)
: 데이터 무결성 유지, 보안 유지 및 권한 검사, 정확성 유지하기 위한 병행 제어데이터 입출력
소프트웨어 기능 구현을 위해 데이터비으세 데이터 입력·출력하는 작업
정의어
, 조작어
, 제어어
로 구분정의어(DDL; Data Define Language)
: 스키마, 도메인, 테이블, 뷰, 인덱스를 정의·변경·삭제조작어(DML; Data Matinpulation Language)
: 프로그램이나 질의어를 통해 저장된 데이터를 실질적 처리제어어(DCL; Data Control Language)
: 데이터 보안, 무결성, 회복, 병행 수행 제어 등 정의프로그래밍 코드와 데이터베이스 데이터를 연결하는 행위
SQL Mapping
: 프로그래밍 코드 내 SQL을 직접 입력하여 DBMS의 데이터에 접속 (ex. JDBC, ODBC, MyBatis)ORM
: 객체 지향 프로그래밍의 객체와 관계형 데이터 베이스의 데이터를 연결 (ex. JPA, Hibernate, Django)데이터베이스의 상태를 변환하는 작업의 단위 또는 수행할 연산
TCL
(Transation Control Language)라고 하며, TCL에는 COMMIT
, ROLLBACK
, SAVEPOINT
가 있다.COMMIT
: 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영ROLLBACK
: 트랜잭션이 행한 작업을 취소하고 이전 상태로 되돌림SAVEPOINT
: 롤백할 저장점을 지정절차형 SQL
프로그래밍 언어처럼 연속적 실행이나 분기, 반복 등 제어가 가능한 SQL
프로시저
, 트리거
, 사용자 정의 함수