SQLD 2주만에 따는 필승 합격법: 최신 개정판 기출문제로 초단기 공략 강좌의 맛보기 강의입니다.
과목이 SQL 기본 및 활용입니다. 관계형 데이터베이스 개요부터 시작하겠습니다. 데이터베이스는 특정 기업이나 개인이 필요에 따라 데이터를 일정한 형태로 저장해 놓은 것을 말합니다. 데이터베이스 이전에 파일 시스템을 사용했었는데요. 파일 시스템의 문제점으로 데이터의 중복성과 데이터의 의존성을 들 수가 있습니다. 파일 시스템은 업무 단위별로 따로따로 시스템이 구축이 되었습니다. 예를 들어서 인사관리 시스템, 또 회계관리 시스템, 생산관리 시스템, 이런 식으로 따로 개발이 되었던 거죠. 그런데 어차피 그 데이터는 중복해서 많이 사용해야 되는데 그 데이터를 따로따로 저장하니까 굉장히 여러 번 중복해서 저장을 하게 되는 것이죠. 이렇게 중복이 되면 만약에 어떤 사원이 부서를 옮겨서 부서를 변경을 해야 되는데 어떤 데이터는 변경되어 있고 어떤 데이터는 그전 데이터로 되어 있어서 일관성이 떨어질 수가 있다는 것입니다. 현실 세계와 컴퓨터 세계가 다 일치하고 컴퓨터 안에서도 일치해야만 우리가 데이터가 정확하다고 말할 수 있습니다. 데이터가 정확하다는 것은 다시 말하면 데이터의 무결성이 유지된다 이렇게 얘기할 수 있구요. 이 데이터의 무결성은 우리가 그 정보를 통해서 의사결정을 하는 것이기 때문에 시스템에서 제공하는 데이터를 믿을 수 없다면, 정확하다고 신뢰할 수 없다면 굉장히 치명적인 문제라고 할 수 있습니다. 또한 파일 시스템의 문제점으로 데이터의 의존성을 들 수 있는데요. 유지보수를 잘하기 위해서는 데이터의 의존성이 너무 높으면 유지보수 하기가 어렵습니다. 쉽게 말하면 우리가 음식점에서 제일 중요한 게 만약에 맛이라면, 맛이 데이터의 중복성을 최소화해서 데이터를 이렇게 신뢰할 수 있도록 정확하게 만드는 거가 되겠고요. 그 다음에 음식 만드는 주방장에 따라서 너무 맛이 달라진다면 만약에 주방장이 바뀌거나 이러면 음식 맛이 유지가 안 되겠죠. 그게 바로 데이터의 의존성이에요. 음식 만드는 사람한테 너무 의존하지 않고 어떤 정확한 레시피를 만들어 놓는다든지 이렇게 한다면 훨씬 음식점 운영이 수월하게 되겠죠. 자, 이 문제점이 바로 데이터베이스가 등장하게 된 배경이 되었을 텐데요. 그 중에서도 관계형 데이터베이스는 굉장히 오랫동안 상용화되어서 많이 사용되고 있는 데이터베이스입니다. 먼저 이 따로 업무 단위별로 개발되었던 파일 시스템을 통합해서 주식회사 한국 데이터베이스 이런 식으로 통합을 함으로써 데이터 중복을 최소화했고, 바로 문제점을 해결해서 무결성을 유지하게 된다고 보시면 되겠습니다. 그래서 관계형 데이터베이스는 통합 시스템을 통해서 여러 사용자가 동시에 공유하면서 병행 제어하고, 또 한 곳에 통합되어 있기 때문에 보안 기능이 더 강화되고요. 또 여러 업무에서 요구사항을 조정을 하고 또 표준화를 하고, 그렇게 함으로써 데이터 품질이 더 향상되고 확보될 수 있다고 볼 수 있습니다. 파일 시스템과 데이터베이스 시스템을 이렇게 비교해 놓았는데요. 위에 있는 파일 시스템을 보시면 이렇게 업무가 3가지가 있는데 각각 따로따로 되어 있으니까 임의의 사원에 대한 정보가 따로 저장이 돼야 되는 것이죠. 거기에 비해서 데이터베이스 시스템은 통합이 돼서 한 곳에 한 번만 이렇게 저장이 되고 모든 사용자들은 바로 같은 정보를 가지고 작업하게 되는 것이죠. 이때 중간에 데이터베이스 매니지먼트 시스템이라는 것이 여러 가지 필요한 작업을 수행하게 되고요. 또 각 사용자들은 SQL 랭귀지를 통해서 원하는 작업을 하실 수 있도록 그렇게 되어 있는 것입니다. SQL Language를 크게 4가지 카테고리로 하는 일에 따라서 구분을 하였습니다. DDL은 데이터를 정의하는 카테고리에 해당하는 명령어들이에요. 예를 들면 집을 먼저 짓는 것이죠. 우리가 데이터베이스를 구축하는 것을 건축물을 짓는 것에 비교하면 유형의 것을 생각해 보시면 좀 편하게 이해하실 수 있습니다. 테이블을 CREATE 한다는 것은 무에서 유를 창조한다, 아무것도 없는 곳에 집을 짓는다, 테이블 생성하고, 또 설계변경 ALTER, 또 집을 제거하는 것 DROP, 그 다음에 그 테이블 명을 바꾸는 것 RENAME, 또 TRUNCATE도 데이터를 삭제하는 것인데요. 요 내용은 또 다음 내용에서 좀 자세하게 살펴보도록 하겠습니다. DML은 이렇게 집을 지었다면 여기에 데이터를 집어넣고, 또 데이터를 삭제하고, 어떤 데이터가 있는지 조회하고, 이런 데이터 조작어에 관련된 카테고리입니다. 우리가 집을 지어 놓고 사람이 이렇게 들어가서 살고 또 이주하고 이렇게 하는 거랑 마찬가지죠. 그래서 주로 INSERT, UPDATE, DELETE, 또 MERGE, 이런 내용과 또 SELECT가 굉장히 중요한데요. 다양하게 조회를 해서 데이터에 대해서 우리가 의사결정할 수 있는 정보를 얻으실 수 있겠습니다. 또 DCL 카테고리가 있습니다. 데이터 제어라고 해서 권한을 부여하거나 사용자에게, 또 권한 주었던 것을 이렇게 회수할 수 있는 그런 명령어들을 주로 얘기하고요. TCL이라고 해서 트랜잭션 제어어가 있습니다. 트랜잭션은 한 번에 같이 작업을 하거나 아니면 한 번에 작업을 아예 안 하거나 이렇게 할 수 있는 일의 단위를 말하는데요. 그래서 트랜잭션을 다 수행했으니까 이제 데이터베이스에 반영할 거야 라는 COMMIT, 또는 그 작업의 단위를 다 취소할 거야 ROLLBACK, 또 어느 위치를 이렇게 저장해 놓고 여기까지 체크를 해 놓고 롤백을 할 수 있도록 이렇게 하실 수 있는 SAVEPOINT 같은 명령어들로 구성되어 있습니다. 관계형 데이터베이스의 가장 기본 단위로서 우리가 테이블을 얘기할 수 있는데요. 이 테이블은 이렇게 열, 그러니까 세로죠, 세로 컬럼이라고 얘기하는 열과 행으로 이루어져 있습니다. 행을 row, 데이터죠. 이렇게 열과 행으로 2차원 구조를 가지고 있습니다. 각 테이블 간의 관계의 의미를 직관적으로 좀 표현할 수 있는 수단으로 ERD라는, 한마디로 설계도죠. 설계도인데, 이 테이블을 아까 말씀드린 테이블을 또 설계에서는 엔터티라고 부르거든요. 그래서 엔터티와 엔터티들의 관계에 관한 설계도가 굉장히 중요한 만큼, 이 설계도를 보시면 지금 부서 엔터티, 부서 테이블에 있는 내용과 사원 테이블에 있는 내용을 보실 수 있고, 어떻게 구조가 되어 있는지 부서 테이블의 부서번호를 사원 테이블에서 이렇게 참조해서 이런 관계선을 통해서 관계를 표현해 놨고요. 참조되어 있는 것을 보실 수 있습니다. 그래서 현실 세계와 컴퓨터 세계의 모든 내용을 설계도를 보시고 파악하시고 이걸 가지고 작업을 하시게 되는 것입니다. 나중에 이제 1과목에서 좀 더 자세하게 설계에 대해서는 얘기하도록 하겠습니다. 2주만에 따는 필승 합격법
