brunch

데이터베이스와 SQL

by 노다해


데이터(data)는 데이터베이스(database)에 저장되고, 데이터베이스는 이 데이터를 체계적으로 관리한다. 이는 우리가 컴퓨터에 파일을 저장하는 방식과 유사하다. 컴퓨터의 하드드라이브나 SSD 같은 저장장치에 다양한 형식의 파일들이 저장되는데, 예를 들어 이미지 파일, 문서 파일, 엑셀 파일처럼 확장자에 따라 파일의 종류가 구분된다. 이러한 확장자는 파일의 형식을 나타내며, 컴퓨터가 어떤 방식으로 해당 파일을 열고 처리할지 판단하는 기준이 된다.


하지만 데이터베이스는 단순한 파일 저장과는 다르다. 데이터베이스(DB)는 데이터를 구조화된 형태로 저장하는 공간이며, 이 데이터를 관리하는 소프트웨어를 DBMS(Database Management System)라고 한다. 즉, 데이터베이스는 저장소 자체일 뿐 아니라 이를 다루는 관리 시스템과의 결합체로 이해할 수 있다. 마치 파일 확장자가 특정 프로그램과 연동되듯, 데이터베이스도 특정 DBMS와 함께 사용되며, 그 구조와 동작 방식이 해당 시스템에 맞춰 고정된다.


초기에는 단순한 파일 저장과 같이 데이터를 저장했지만 몇 가지 문제점이 있었다. 이를 해결하기 위해 데이터베이스는 점차 발전했고, 최근에는 관계형 데이터베이스(RDB) 형태로 자리잡게 되었다. SQL(Structured Query Language)는 이러한 관계형 데이터베이스에서 데이터를 정의하고 조작하기 위해 고안된 표준 언어이다.


정리하자면 사람(Client)이 SQL로 무언가 요청하면 DBMS가 이를 해석하고 실행해서 DB에서 데이터를 꺼내오는 식이다. 그리고 이런 DBMS가 실행되는 공간을 서버(Server)라고 부른다. 클라이언트는 서버에 접속해서 SQL로 요청한다. 도서관에 비유하자면, 도서관 이용자(Client)가 도서관(Server)에 가서 '이 책 빌릴 수 있나요?'라고 SQL로 요청하면, 사서(DBMS)가 이를 책장(DB)에서 꺼내오는 식이다.



image.png?type=w966




관계형 DBMS에는 Oracle DB, MySQL, ProgreSQL, SQLite 등 여러 종류가 있다. 각각의 DBMS는 각자의 SQL 문법이 있다. 이들은 모두 국제 표준화 기구(ISO)와 미국 표준협회(ANSI)가 공동으로 정의하는 표준SQL을 따른다. 다만 DBMS에 따라 고유한 문법이 일부 있기 때문에, 특정 DBMS에 맞는 문법이나 기능을 숙지할 필요가 있다.


데이터는 데이터베이스에 표(Table) 형태로 저장된다. 행(Row)은 관측값(Observation), 레코드(Record) 등으로 부르고, 열(column)은 속성, 변수, 필드(Field) 등으로 부른다. 행과 열의 교차점은 셀(Cell), 데이터 포인드(Data Point) 등으로 부른다. 여기서 주의할 점은 일반적인 통계나 머신러닝에서는 하나의 사례(row)를 데이터 포인트라고 부른다는 점이다. 상황에 따라 혼용되기도 하지만 구체적으로 명시해야할 떄에는 레코드(Record)라고 하는 편이 안전하다.




%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7_2025-06-05_%EC%98%A4%EC%A0%84_11.35.28.png?type=w1





keyword
매거진의 이전글따릉이 대여 이력 분석을 통한 재배치 방안 제언