CS22 [데이터베이스] 보이스 코드 정규형 BCNF [데이터베이스] 보이스 코드 정규형 BCNF 데이터베이스의 정규화를 공부 중 보이스 코드 정규형의 이해가 쉽지 않았어서 정리하고자 글을 작성합니다. 우선 보이스 코드 정규형의 정의는 이렇습니다. 모든 결정자가 후보키(유일, 최소)여야 한다. 일단 결정자라 함은 릴레이션 내에서 다른 속성을 결정할 수 있는 것입니다. 예를 들면 (이름, 주민등록번호)로 구성된 릴레이션이 있다고 했을 때, 이름 속성은 동명이인이 있을 수 있으므로 주민등록번호 속성을 결정하지 못합니다. 하지만 주민등록번호 속성은 릴레이션에서 유일하기 때문에 이름 속성을 결정할 수 있습니다. 이렇게 한 속성이 다른 속성을 유일하게 결정할 수 있을 때 결정자라 합니다. 자연스럽게 이름은 주민등록번호의 종속자가 됩니다. * 주민등록번호(결정자) -.. 2022. 4. 2. [JAVA]자바 PriorityQueue 우선 순위 큐 [자바] PriorityQueue 우선순위 큐 우선순위 큐 시간 복잡도 O(logN) 자바 코드 우선순위 큐 자바에는 자료구조 heap을 구현한 우선순위 큐 클래스가 있다. 큐를 생각해보면 가장 먼저 들어온 요소가 가장 먼저 나가게 되는데, 우선순위 큐에서는 요소들이 우선순위를 가져서 들어온 순서와 상관없이 우선순위가 높은 요소가 큐에서 가장 먼저 나가게 된다. 이때 나오는 요소는 우선순위가 가장 높은 heap 자료구조의 최상단 root node이다. heap 자료구조는 가장 적은 값이나 가장 큰 값을 항상 최상단 root node에 위치시켜 이 값을 내보내는 자료구조이다. 우선순위가 가장 적은 값을 root node로 두면 최소 힙, 우선순위가 가장 높은 값을 root node로 두면 최대 힙이다. 중.. 2022. 3. 19. [JAVA] 알고리즘 DFS[Depth-First Search] 깊이 우선 탐색 [JAVA] 알고리즘 DFS [Depth-First Search] 깊이 우선 탐색 DFS [Depth-First Search]는 깊이 우선 탐색이며 깊이를 우선적으로 탐색합니다. 2차원 배열이나 그래프 탐색에서 한번 방문한 노드는 다시 방문하지 않으며 깊이 탐색을 통해 방문하여 모든 노드를 탐색하는 방법입니다. BFS와 마찬가지로 모든 노드를 탐색하는 방법 중 하나입니다. DFS - 재귀, stack 자료 구조 활용 BFS - Queue 자료 구조 활용 DFS를 코드로 구현하기 위해선 3가지가 필요합니다. 탐색할 2차원 배열 또는 그래프 방문처리를 하기 위한 boolean type Stack 자료 구조 또는 재귀 함수 1 2 static boolean[] visited = new boolean[9]; /.. 2022. 3. 16. [JAVA] 알고리즘 BFS[Breadth-First Search] 너비 우선 탐색 [JAVA] 알고리즘 BFS [Breadth-First Search] 너비 우선 탐색 BFS [Breadth-First Search]는 너비 우선 탐색이며 너비를 우선적으로 탐색합니다. 2차원 배열이나 그래프 탐색에서 한번 방문한 노드는 다시 방문하지 않으며 주변을 순차적으로 방문하여 모든 노드를 탐색하는 방법입니다. 모든 노드를 탐색하는 알고리즘으로 깊이 우선 탐색을 하는 DFS와는 달리 Stack을 이용하지 않으며 Queue를 이용하여 전개할 수 있습니다. DFS - 재귀, stack 자료 구조 활용 BFS - Queue 자료 구조 활용 BFS를 코드로 구현하기 위해서 3가지를 우선적으로 구현해놓아야 합니다. 탐색할 2차원 배열 또는 그래프 방문처리를 하기 위한 boolean type Queue 자료.. 2022. 3. 16. 이전 1 2 3 4 다음