본문 바로가기

CS34

[Database] 관계 대수와 SQL (2) 추가된 관계 대수 연산자 집단(aggregation) 함수 : AVG, SUM, MIN, MAX, COUNT 그룹화 : 각 그룹에 대해 집단 함수를 적용 외부조인 : 상대 릴레이션에서 대응되는 투플을 갖지 못하는 투플이나 조인 애트리뷰트에 널값이 들어 있는 투플들을 다루기 위해서 조인 연산을 확장한 조인 1. 왼쪽 외부 조인(left outer join) : 릴레이션의 모든 투플들을 결과에 포함시키고, 만일 릴레이션 S에 관련된 투플이 없으면 결과 릴레이션에서 릴레이션 S의 애트리뷰트들은 널값으로 채움 2. 오른쪽 외부 조인(right outer join) : S의 모든 투플들을 결과에 포함시키고, 만일 릴레이션 R에 관련된 투플이 없으면 결과 릴레이션에서 릴레이션 R의 애트리뷰트들은 널값으로 채움 3... 2021. 10. 8.
[Database] 관계대수와 SQL 관계 데이터 모델의 두가지 언어 1. 관계 해석 : 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적 언어 2. 관계 대수 : 어떻게 질의를 수행할 것인가를 명시하는 절차적 인어 관계 대수 기존의 릴레이션으로 부터 새로운 릴레이션을 생성 기본적인 연산자들이나 집합으로 구성 결과 릴레이션은 또다른 관계 연산자의 입력으로 사용가능 관계 연산자 셀렉션 : 한 릴레이션에서 셀렉션 조건을 만족하는 튜플들의 부분집합으로 중복된 튜플들이 존재할 수 없다. 프로젝션 : 한 릴레이션에서 애트리뷰트 리스트에 해당하는 애트리뷰트들의 부분집합으로 중복된 튜플이 존재할 수도 있다. 합집합 : 두 릴레이션의 합집합 차집합 : 두 릴레이션의 차집합 카티션 곱 : 두 릴레이션에서의 튜플들로 만들수 있는 모.. 2021. 9. 23.
[알고리즘] 다익스트라(Dijkstra) 알고리즘 다익스트라(Dijkstra) 알고리즘 다익스트라(Dijkstra) 알고리즘은 다이나믹 프로그래밍을 활용한 대표적인 최단 경로 탐색 알고리즘이다. 하나의 최단 거리를 구할 때 그 이전까지 구했던 최단 거리 정보를 사용하는 특징을 가지며, 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 구할 수 있다. 작동 과정 0. 모든 노드의 최소비용을 INF로 초기한다. 1. 시작 노드를 설정하고, 해당 노드의 비용을 0으로 해준다. 2. 시작 노드를 기준으로 각 노드의 최소 비용을 저장한다. 3. 방문하지 않은 노드 중에 가장 비용이 적은 노드를 선택한다. 이 때, 비용이 같은 노드가 여러개 있다면 맨 앞에 있는 노드를 선택한다. 4. 해당 노드를 거쳐서 특정한 노드를 가는 경우를 고려하여 최소 비용을 갱신한다.. 2021. 9. 17.
[알고리즘] MST - 크루스칼 알고리즘 (Kruskal Algorithm) Spanning Tree 그래프 내의 모든 정점을 포함하는 트리를 의미한다. Spanning Tree의 특징 Tree의 특수한 형태로 모든 정점이 연결되어 있어야 한다. 하나의 그래프에 여러개의 스패닝 트리가 존재할 수 있다. 사이클이 존재하면 안된다. N개의 정점을 정확히 N-1개의 간선으로 연결해야한다. Minimum Spanning Tree (MST) 사용된 간선들의 가중치 합이 최소인 Spanning Tree를 의미한다. MST의 특징 간선의 가중치의 합이 최소여야한다. Spanning Tree의 특징을 가져야한다. MST의 구현 방법 대표적인 MST알고리즘은 크루스칼과 프림 알고리즘이 있다. 이번시간엔, 크루스칼에 대해서만 설명할 것이다. 크루스칼 알고리즘(Kruskal Algorithm) 모든.. 2021. 9. 15.
[Database] 관계 데이터 모델 / 릴레이션 관계 데이터 모델의 개념 릴레이션을 사용하여 모든 데이터를 논리적으로 구성한 것이 관계 데이터 모델이다 릴레이션 : 행과 열로 이루어진 2차원 테이블, 튜플의 집합 레코드 : 릴레이션의 각 행 튜플 : 행을 의미 애트리뷰트 : 열을 의미 카디날리티 : 튜플의 수 차수 : 애트리뷰트의 수 스키마 : 릴레이션이 어떻게 구성되는지에 대한 기본적인 구조로 첫 행을 의미 도메인 : 한 애트리뷰트에 나타날 수 있는 값들의 집합 릴레이션 스키마 릴레이션의 이름과 릴레이션 애트리뷰트의 집합이다 표기법은 릴레이션 이름 (애트리뷰트1, 애트리뷰트2, ... ) 으로, 기본 키 애트리뷰트에 밑줄 표시한다 내포라고 한다 릴레이션 인스턴스 릴레이션의 어느 시점에 들어있는 튜플들의 집합이다 시간의 흐름에 따라 계속 변한다 외연라.. 2021. 9. 14.
[Database] DBMS 발전과정/분류/언어 File System vs DBMS 프로그램-데이터 독립성이 큰 차이점이다. File System 프로그램-데이터 독립성이 약해서 데이터 구조가 바뀌는 경우 프로그램에 영향을 준다 DBMS 프로그램-데이터 독립성을 가져 프로그램에 영향을 주지 않으면서 데이터 구조 변경이 가능하다 이밖에도, 이러한 특징들을 가진다. 데이터 모델 데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합(데이터 타입과 관계), 구조 위에서 동작하는 연산자들, 무결성 제약조건들을 의미한다. 사용자에게 내부 저장 방식은 숨기면서 데이터에 대한 직관적인 뷰를 제공하는 특징이 있다. 데이터 모델의 분류 1. 개념적 데이터 모델 사람이 인식하는 것과 유사하게 데이터베이스의 전체적인 논리적 구조를 명시한다. 대표적인 예시 엔티티-관계(E.. 2021. 9. 7.