1. 배열
- Array
- 선형 구조(Linear Structure)
- 동일한 자료형을 같은 크기로 나열
- 순서 있음
- 정적인 자료 구조로 기억장소 추가 어려움
- 데이터 삭제 시 빈 공간이 남아 메모리 낭비
- 첨자로 데이터 접근(사용 첨자 개수에 따라 n차원)
- 반복 데이터 처리에 적합
- 동일 변수 사용해서 간편
2. 선형 리스트
- Linear List
- 연속 리스트(Contiguous List): 배열 이용
- 기억장소를 연속적으로 배정받아 이용 효율이 밀도가 1로 가장 좋음
- 중간에 데이터 삽입하려면 자료 이동 필요
- 연결 리스트(Linked List)
3. 연결 리스트
- Linked List
- 포인터(Pointer) 이용
- 연속되지 않은 자료를 순서에 따라 노드의 포인터가 다음 위치를 가리킴
- 노드의 삽입/삭제 쉬움
- 포인터(링크)부분이 필요해서 기억 공간 이용 효율 나쁨
- 포인터 찾는 시간 때문에 접근 속도 느림
- 연결 끊어지면 노드 찾기 어려움
4. 스택
- Stack
- 한쪽으로만 입/출력 가능
- 나중에 삽입된 자료가 먼저 삭제되는 후입선출(LIFO; Last In First Out)
- 오버플로(Overflow): 기억 공간 찼는데 데이터 삽입
- 언더플로(Unerflow): 데이터 없는데 삭제
- TOP: 마지막 자료가 기억된 공간
- Bottom: 스택의 밑바닥
5. 트리
- Tree
- 비선형 구조(Non-Linear Structure)인 그래프(Graph)의 특수 형태
- 기억 공간인 노드(Node)를 링크(Link)가 연결
- 정점(노드)과 선분(Branch, 가지)이 사이클을 이루지 않음
- 근 노드(Root Node): 트리 맨 위의 노드
- 단말 노드(Terminal Node) / 잎 노드(Leaf Node): 자식이 없는 노드
- 부모 노드(Parent Node): 연결된 이전 레벨의 노드
- 자식 노드(Son Node): 다음 레벨의 노드
- 형제 노드(Brother Node, Sibling): 부모가 같은 노드
- 디그리(Dgree, 차수): 노드에서 뻗어 나온 가지의 수
- 트리의 디그리: 노드들의 디그리 중 가장 큰 수
6. 데이터베이스
- 조직에서 공동 사용될 데이터를 통합하고 저장하여 항상 사용될 수 있게 운영하는 자료 모임
- 통합된 데이터(Integrated Data): 중복 배제
- 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있게 매체에 저장
- 운영 데이터(Operational Data): 고유 업무 수행에 필수적인 자료
- 공용 데이터(Shared Data): 응용 시스템들이 공동 소유/유지
7. DBMS
- DataBase Management System(데이터베이스 관리 시스템)
- 사용자 요구에 따른 정보를 생성하고 데이터베이스를 구성/접근/유지관리하는 소프트웨어
- 파일 시스템의 데이터 중복과 종속 문제를 해결
- 정의 기능: 데이터 형(Type)과 구조에 대한 정의, 제약 조건 등을 명시
- 조작 기능: 사용자가 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하는 인터페이스 제공
- 제어 기능
- 무결성: 작업이 정확히 수행되도록 제어
- 권한(Authority) 기능: 정당한 사용자만 허가된 데이터에 접근하도록 보안(Security) 유지
- 병행 제어(Concurrency Control): 여러 사용자의 동시 접근 시 처리 결과가 정확성 유지하도록
8. SQL
- Structured Query Language
- 데이터 입/출력 등 조작 작업 위해 사용(개발 코드 내에 SQL 코드를 넣어 소프트웨어 구현)
- 데이터 구조 정의, 조작, 제어 기능을 갖춘 질의어(Query Language)
- 관계형 데이터베이스(RDB, Relational DataBase) 지원
- 관계대수(원하는 정보 검색 유도를 기술하는 절차적 언어)와 관계해석(정보 정의할 때 계산 수식 사용하여 연산 표현)에 기초를 둔 혼합 데이터 언어
- 데이터 정의어(DDL; Data Define Language): SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의/변경/삭제
- 데이터 조작어(DML; Data Manipulation Language): 저장 데이터를 질의어 통해 실질적 처리
- 데이터 제어어(DCL; Data Control Language): 보안, 무결성, 회복, 병행 수행 제어 등 정의
9. ORM
- Object-Relational Mapping
- 객체지향 프로그래밍(OOP; Object-Oriented Programming)의 객체(Object)와 관계형(Relational) 데이터베이스의 데이터를 연결(Mapping)하는 기술
10. 트랜잭션
- Transaction
- SQL을 통한 데이터베이스 조작 수행 시 하나의 논리적 기능을 위한 작업의 단위 혹은 한번에 수행될 일련의 연산
- TCL(Transaction Control Language): 트랜잭션 제어하는 명령어
- COMMIT: 트랜잭션 정상 종료 후 변경 내용을 데이터베이스에 반영
- ROLLBACK: 트랜잭션 비정상 종료로 데이터베이스의 일관성이 깨지면 변경 작업 취소
- SAVEPOINT(=CHECKPOINT): ROLLBACK할 위치인 저장점 지정