프로그래밍 & 알고리즘 & IT/컴퓨터일반 3

자료 구조란?

잘은 모르겠지만 컴퓨터공학과에서 제일 처음 배우는 전공 과목이 자료구조 (data structure)가 아닐까 싶다. ​ 그렇다면 자료구조가 뭘까 ? 위키백과의 정의에 따르면 컴퓨터과학에서 효율적인 접근 및 수정을 가능케하는 자료의 조직, 관리, 저장을 의미한다고 한다. 즉, 쉽게 얘기해서 자료, 즉 데이터가 저장된 형태란 거다. 예를 들면 데이터를 array로 저장할지, queue로 저장할지 등을 결정하는게 바로 그 저장되는 형태 또는 구조를 정하는 것과 같다. 참고로 여기서 말하는 데이터란 RAM(Random Access Memory)상에서의 데이터를 말한다. 즉, 단기적으로 사용할 데이터. 쓰고 바로 버릴 데이터를 말한다. ​ 우리는 주로 컴퓨터로 어떤 문제를 해결하려고 할 때, 알고리즘을 이용한다..

[데이터베이스] Key의 종류

(관계형) 데이터베이스 (RDBMS) 의 각 table을 relation이라고 하며 relation은 attribute(column name)와 tuple(rows)들로 이루어져있다. 이때 attribute들의 부분집합으로 super key를 정의할 수 있다. ​ 여기서 key란, 해당 attribute들의 tuple들이 서로 겹치지 않을 때, 그 해당 attribute들은 super key가 될 자격을 가지게 된다. 예를 들어, 아래와 같은 table이 주어졌다고 할 때, {age,sex}, {age,bloodtype} 등은 super key가 될 수 있다. 한편, candidate key란 위의 가능한 super key의 후보들 중 최소한의 개수(cardinality)를 갖는 key이다. 예를 들면,..