본문 바로가기
IT & 데이터 사이언스/DB & SQL

[DB] DB 및 SQL 관련용어 정리

by 바른 호랑이 2023. 3. 6.
728x90
반응형

안녕하세요. 바른호랑이입니다.

이번 게시글에서는 DB 및 SQL관련용어들에 대해서 간략하게 알아볼 예정입니다.

용어들과 그에 대한 내용은 아래와 같습니다.

 

1. 개념적 데이터 모델링

: 추상화 수준이 높고, 업무중심적이며 포괄적인 수준의 모델링을 지칭하는 용어로 전사적 데이터 모델링, EA(Enterprise Architect)수립시 많이 이용함.

 

2. 격리성(Isolation)

: 실행 중인 트랜잭션의 중간에 다른 트랜잭션이 접근할 수 없음.

 

3. 공유 Lock(Shared Lock)

: 데이터를 읽고자 할 때, 다른 공유 Lock과는 호환되지만 다른 배타적 Lock과는 호환되지 않음.

 

4. 관계(Relationship)

: 엔터티의 인스턴스 사이의 논리적인 연관성으로 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태

 

5. 교착상태(DeadLock)

: 두 세션이 각각 Lock을 설정한 리소스를 서로 액세스하려고 마주보며 진행하는 상황으로 둘 중 하나가 물러나야 해결됨.

 

6. 규칙기반 옵티마이저(Rule-Based Optimizer)

: 미리 정해 놓은 규칙에 따라 액세스 경로를 평가하고 실행계획을 선택해주는 옵티마이저

 

7. 낙관적 동시성 제어(Optimistic Concurrency Control)

: 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정함으로써, 데이터를 읽을 때 Lock을 설정하지 않고 수정 시점에서 다른 사용자에 의해 값이 변경되었는지 검사하는 동시성 제어 기법

 

8. 논리적 데이터 모델링

: 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현하는 모델링으로 재사용성이 높음. 

 

9. 다중버전 동시성 제어(Multiversion Concurrency Control, MVCC)

: 현재 진행 중인 트랜잭션에 의해 변경된 데이터를 읽고자 할 때는 변경 이전의 상태로 되돌린 버전을 읽는 방식

 

10. 데이터 모델링

: 기업 업무의 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무규칙(Business Rule)에 대하여 참 또는 거짓을 판별할 수 있는 사실을 어떻게(How), 누가(Who)의 관점에서 정의하고, 전산화와는 별개의 관점에서 이를 명확하게 표현하는 추상화 기법

 

11. 데이터 독립성

: ANSI/SPARC에서 제시한 외부단계와 개념적 단계, 내부적 단계로 구성된 서로 독립적인 DB 스키마 구조에서 외부와 개념, 개념과 내부 단계에 대한 독립성을 의미함.

 

12. 동시성 제어(Concurrency Control)

: 다수 사용자에 의한 다중 트랜잭션이 동시에 작동할 때 DBMS는 이들 트랜잭션의 상호 간섭 작용에서 DB를 보호할 수 있어야 하며, 이를 동시성 제어라고 지칭함.

 

13. 동적 파티션 가지치기(Dynamic Partition Pruning)

: 액세스할 파티션을 실행시점(Run-Time)에서야 결정하는 것으로 파티션 키 컬럼을 바인드 변수로 조회하는 경우가 대표적임. NL(Nested Loop) Join시 에도 Inner 테이블이 Join 컬럼 기준으로 파티셔닝 되어 있으면 동적 Pruning이 작동함.

 

14. 디스크 소트(To-Disk Sort)

: 할당받은 소트 영역 내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 경우로 External Sort라고도 함.

 

15. 메모리 소트(In-Memory Sort)

: 전체 데이터의 정렬 작업을 할당받은 소트 영역 내에서 완료하는 경우로 Internal Sort 또는 Optimal Sort라고도 함.

 

 16. 모델(Model)

: 모형, 축소형의 의미로 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형

 

17. 문장수준 읽기(Statement-Level Read Consistency)

: 다른 트랜잭션에 의해 데이터의 추가, 변경, 삭제가 발생하더라도 단일 SQL문 내에서 일관성 있게 값을 읽는 것을 지칭하며, 일관성 기준 시점은 쿼리 시작 시점이 됨.

 

18. 물리적 데이터 모델링

: 실제 DB에 이식할 수 있도록 저장공간, 성능 등 물리적인 성격을 고려하는 모델링을 지칭함.

 

19. 반정규화(De-Normalization)

: 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능 향상과 개발(Development), 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

 

20. 배타적 Lock(Exclusive Lock)

: 데이터를 변경하고자할 때 사용하는 Lock으로 어떤 모드의 Lock과도 호환되지 않음.

 

21. 버퍼 캐시 히트율(Buffer Cache Hit Ratio)

: 전체 읽은 블록 중에서 메모리 버퍼 캐시에서 찾은 비율을 지칭하는 것으로 물리적인 디스크 읽기를 수반하지 않고 메모리에서 블록을 찾은 비율(공식 : Buffer Cache Hit Ratio = ( 버퍼 캐시에서 곧바로 찾은 블록 수 / 총 읽은 블록 수 ) x 100 )

 

22. 병렬 서버 프로세스

: 실제 병렬 작업을 수행하는 개별 프로세스

 

23. 부분범위처리 

: 쿼리 결과집합을 전송할 때, 전체 데이터를 연속적으로 전송하지 않고 사용자로부터 Fetch Call이 있을 때마다 일정량씩 나눠서 전송하는 것을 지칭함.

 

24. 분산 DB

: DB를 연결하는 빠른 네트워크 환경을 이용하여 DB를 여러 지역, 노드로 위치시켜서 사용성/성능을 향상시킨 DB

 

25. 블로킹(Blocking)

: Lock 경합이 발생해 특정 세션이 작업을 진행하지 못하고 멈춰 선 상태

 

26. 비관적 동시성 제어(Pessimistic Concurrency Control)

: 사용자들이 같은 데이터를 동시에 수정할 것이라고 가정함으로써, 데이터를 읽는 시점에 설정한 Lock을 트랜잭션이 완료될 때까지 유지하는 동시성 제어 기법

 

27. 비식별자관계

: 부모로부터 상속받은 주식별자를 자식 엔터티의 일반 속성으로 이용하는 연관관계

 

28. 비용(Cost)

: 쿼리를 수행하는데 소요될 것으로 예상되는 일량 또는 시간

 

29. 비용기반 옵티마이저(Cost-Based Optimizer)

: 비용을 기반으로 최적화를 수행하는 옵티마이저. 

 

30. 비용기반 쿼리 변환

: 변환된 쿼리 비용이 더 낮을 때만 그 쿼리를 사용하고, 그렇지 않을 때는 원본 쿼리를 그대로 두고 최적화를 수행하는 것을 지칭함.

 

31. 선택도(Selectivity)

: 전체 대상 레코드 중에서 특정 조건에 의해서 선택될 것으로 예상되는 레코드 비율(공식 : Selectivity = Cardinality / Total Number Of Records)

 

32. 성능 데이터 모델링 

: DB 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것

 

33. 소프트 파싱(Soft Parsing)

: SQL과 실행계획을 캐시에서 찾아 곧바로 실행단계로 넘어가는 경우

 

34. 속성(Attribute)

: 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위(원자성)

 

35. 식별자(Identifier)

: 엔터티에서 각각의 인스턴스를 구분할 수 있는 논리적인 이름

 

36. 식별자관계

: 부모 엔터티로부터 상속받은 주식별자를 자식 엔터티의 주식별자로 이용하는 관계

 

37.  실행계획(Execution Plan)
: 사용자의 질의를 처리하기 위한 방법과 절차를 표현한 것으로 DBMS 내부적으로 옵티마이저에 의해 생성된 SQL 처리절차(프로시저)지칭

 

38. 엔터티(Entity)

: 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것

 

39. 영속성(Durability)

: 트랜잭션이 일단 그 실행을 성공적으로 완료하면 그 결과는 DB에 영속적으로 저장되는 특성

 

40. 옵티마이저(Optimizer)

: 사용자의 질의에 대해 최적의 실행방법(실행계획)을 결정하는 모듈규칙기반 옵티마이저와 비용기반 옵티마이저로 나눠짐

 

41. 원자성(Atomicity)

: 트랜잭션은 더 이상 분해가 불가능한 업무의 최소단위이므로, 전부 처리되거나 아예 하나도 처리되지 않아야 함.

 

42. 인덱스 손익분기점

: 인덱스에 의한 테이블 액세스와 테이블 전체 스캔의 수행 비용이 같아지는 지점을 지칭

 

43. 인스턴스(Instance)

: SGA 공유 메모리 영역과 이를 액세스하는 프로세스 집합을 합쳐서 지칭하는 용어

 

44. 일관성(Consistency)

: 하나의 트랜잭션을 성공적으로 완료하면 DB는 여전히 일관된 상태여야한다는 뜻으로 트랜잭션의 실행 결과로 DB상태가 모순되지 않아야 함.

 

45. 정규화(Normalization)

: 속성간의 함수적 종속, 다치종속, 조인종속에 의한 데이터처리(입력, 수정, 삭제)의 이상현상(Anomaly)을 제거하여 정규형(Normal Form)을 만들어 나가는 DB 이론

 

46. 정적 파티션 가지치기(Static Partition Pruning)

: 액세스할 파티션을 컴파일 시점(Compile-Time)에 미리 결정하는 것으로 파티션 키 컬럼을 상수 조건으로 조회하는 경우 작동함.

 

47. 카디널리티(Cardinality)

: 특정 액세스 단계를 거치고 나서 출력될 것으로 예상되는 결과 건수를 지칭하며, 총 행 수에 선택도를 곱해서 구함. 특정 컬럼의 유니크한 값의 개수(예시 : 성별이 남, 여로만 구성되면 카디널리티는 2임)

 

48. 클러스터링 팩터(Clustering Factor)

: 특정 컬럼을 기준으로 같은 값을 갖는 데이터가 서로 모여있는 정도

 

49. 트랜잭션 수준 읽기 일관성(Transaction-Level Read Consistency)

: 다른 트랜잭션에 의해 데이터의 추가, 변경, 삭제가 발생하더라도 트랜잭션 내에서 일관성 있게 값을 읽는 것을 지칭하며 일관성 기준 시점은 트랜잭션 시작 시점이 됨.

 

50. 트랜잭션(Transaction)

: 업무 처리를 위한 논리적인 작업 단위

 

51. 파티션 가치지기(Pruning)

: 옵티마이저가 SQL의 대상 테이블과 조건절을 분석하여 불필요한 파티션을 액세스 대상에서 제외하는 기능

 

52. 하드 파싱(Hard Parsing)

: SQL과 실행계획을 캐시에서 찾지 못해 최적화 과정을 거치고 나서 실행단계로 넘어가는 경우를 지칭함.

 

53. 함수의 종속성(Functional Dependency)

: 속성의 값이 어떤 기준값에 의해 종속되는 현상을 지칭하는 것으로 기준값을 결정자(Determinant)라고 하고 종속되는 값을 종속자(Dependent)라 함.

 

54. 휴리스틱(Heuristic) 쿼리 변환

: 결과만 보장된다면 무조건 쿼리변환을 수행하는 것

 

55. Bulid Input

: Hasho Join에서 해시 테이블 생성을 위해 선택된 집합

 

56. Dirty Read

: 다른 트랜잭션에 의해 수정된 아직 커밋되지 않은 데이터를 읽는 것을 지칭함.

 

57. Dynamic SQL

: String형 변수에 담아서 기술하는 SQL문을 지칭함.

 

58. ERD(Entity Relationship Diagram)

: 엔터티와 엔터티간의 관계를 이해하기 쉽게 도식화한 다이어그램

 

59. Global 파티션 인덱스

: 테이블 파티션과 독립적인 구성을 갖도록 파티셔닝한 인덱스를 지칭하는 것으로 SQL Server에서는 정렬되지 않은(un-aligned) 파티션 인덱스라 지칭함.

 

60. Index Skew

: 인덱스 엔트리가 왼쪽 또는 오른쪽에 치우치는 현상을 지칭함.

 

61. Index Space 

: 인덱스 블록 전반에 걸쳐 밀도(density)가 떨어지는 현상을 지칭함.

 

62. Local 파티션 인덱스 

: 테이블 파티션과 1:1로 대응되도록 파티셔닝한 인덱스를 지칭하는 것으로 SQL Server에서는 정렬된(aligned) 파티션 인덱스라 지칭함.

 

63. Lock Escalation

: 관리할 Lock 리소스가 정해진 임계치를 넘으면서 로우 레벨 락이 페이지, 익스텐트, 테이블 레벨 락으로 점점 확장되는 것을 지칭함.

 

64. LRU(Least Recently Used) 알고리즘

: 사용빈도가 높은 오브젝트가 메모리 캐시에 오래도록 상주하도록 관리하는 알고리즘

 

65. MultiBlock I/O

: I/O Call이 필요한 시점에 인접한 블록들을 같이 읽어 메모리를 적재하는 방식

 

66. NonPrefixed 파티션 인덱스

: 파티션 인덱스를 생성할 때, 파티션 키 컬럼을 인덱스 키 컬럼 왼쪽 선두에 두지 않는 것을 지칭하며, 파티션 키가 인덱스 컬럼에 아예 속하지 않을 때도 여기에 속함.

 

67. Non-Repeatable Read

: 한 트랜잭션 내에서 같은 쿼리를 두 번 수행했는데, 첫 번째 쿼리에 없던 유령 레코드가 두 번째 쿼리에서 나타나는 현상

 

68. Prefixed 파티션 인덱스

: 파티션 인덱스를 생성할 때, 파티션 키 컬럼을 인덱스 키 컬럼 왼쪽 선두에 두는 것을 지칭함.

 

69. Probe Input 

: Hash Join에서 Build Input으로 선택되지 못한 나머지 집합을 지칭하며, 해시 테이블을 탐색할 소스 데이터를 제공하는 집합

 

70. Query Coordinator

: 병렬 SQL문을 발행한 세션으로 각 병렬 서버 프로세스의 역할을 조정하고 결과를 취합하는 것을 지칭함.

 

71. Random 액세스

: 레코드간 논리적, 물리적 순서를 따르지 않고 한 건을 읽기 위해 한 블록씩 접근하는 방식

 

72. Read Committed

: 트랜잭션이 커밋되어 확정된 데이터다른 트랜잭션이  읽는 것을 허용하는 트랜잭션 격리성 수준

 

73. Read Uncommitted

: 트랜잭션에서 처리 중인 아직 커밋되지 않은 데이터를 다른 트랜잭션이 읽도록 허용함으로서 Dirty Read를 방지해주는 트랜잭션 격리성 수준

 

74. Repeatable Read

: 트랜잭션 내에서 쿼리를 두 번 이상 수행할 때, 첫 번째 쿼리에 있던 레코드가 사라지거나 값이 바뀌는 현상을 방지해주는 트랜잭션 격리성 수준

 

75. Sequential 액세스

: 레코드간 논리적 또는 물리적인 순서에 따라 차례대로 읽어 나가는 방식

 

76. Serializable Read

: 트랜잭션 내에서 쿼리를 두 번 이상 수행할 때, 첫 번째 쿼리에 있던 레코드가 사라지거나 값이 바뀌지 않음은 물론 새로운 레코드가 나타나지도 않는 트랜잭션 격리성 수준

 

77. Single Block I/O

: 한번의 I/O Call에 하나의 데이터 블록만 읽어 메모리에 적재하는 방식

 

78. SQL 처리 흐름도(Access Flow Diagram)

: SQL문의 내부적인 처리 절차를 도표화하여 표현한 것

 

79. Static SQL

: String형 변수에 담지 않고 코드 사이에 직접 기술한 SQL문을 지칭하며 Embedded SQL이라고도 함.

 

P.S 더 나은 개발자가 되기위해 공부중입니다. 잘못된 부분을 댓글로 남겨주시면 학습하는데 큰 도움이 될 거 같습니다.

+ 본 글은 「SQL 전문가 가이드, 한국 데이터베이스 진흥원」참고하여 작성하였습니다.

728x90
반응형

댓글