컴퓨터 공부/🌠 Journey to Data field

Understanding Data Engineering 5-SQL

letzgorats 2024. 12. 7. 23:51

이번 포스팅에서는 데이터 엔지니어링과 데이터 과학에서 핵심 역할을 하는 SQL과 관계형 데이터베이스에 대해 정리해보자.

1. SQL이란?

SQL

SQL 의 정의

- SQL은 관계형 데이터베이스 관리 시스템(RDBMS)을 다룰 때 사용되는 언어이다.

- 데이터 엔지니어와 데이터 사이언티스트가 주로 사용하는 언어로, 데이터베이스에서 데이터를 생성, 관리, 쿼리할 수 있다.

 

SQL의 특징

- 여러 레코드를 한 번에 검색, 그룹화, 필터링, 집계가 가능하다.

- 영어와 유사한 문법으로 쉽게 작성하고 이해할 수 있다.

 

데이터 엔지니어데이터베이스를 생성하고 관리하기 위해 SQL을 사용하고,

데이터 사이언티스트SQL을 사용해 데이터베이스에서 필요한 정보를 쿼리한다.


2. SQL을 활용한 테이블 생성

Spotflix의 직원 테이블을 SQL로 생성하는 예시를 통해 이해해보자.

CREATE TABLE employees (
    employee_id INT, -- 정수형 데이터 (소수점 없음)
    first_name VARCHAR(255), -- 최대 255자 길이의 텍스트
    last_name VARCHAR(255),
    role VARCHAR(255),
    team VARCHAR(255),
    full_time BOOLEAN, -- 논리형 값 (True/False)
    office VARCHAR(255)
);

 

테이블을 생성할 때는 'CREATE TABLE' 키워드를 사용해서 테이블을 만들고, 각 컬럼의 이름과 그 컬럼의 데잍터 타입을 정의해주면 된다.

- employee_id : 정수형(ID는 고유 값)

- first_name, last_name, role, team, office : 텍스트

- full_time : 논리형 불리언 값(0:False, 1:True)


3. SQL을 활용한 데이터 쿼리

데이터 사이언티스트는 다음과 같은 쿼리를 통해 데이터를 검색한다.

SELECT first_name, last_name
FROM employees
WHERE role LIKE '%Data%';

 

테이블에서 필요한 값을 찾기 위해서는 가장 기본적으로 SELECT, FROM, WHERE 을 알아야 한다.

- SELECT : 필요한 컬럼 선택

- FROM : 데이터를 검색할 테이블 지정

- WHERE : 조건 지정(%Data%는 "Data"가 포함된 모든 값을 의미)

 

즉, 해당 쿼리는 employees 테이블에서 'role' 에 "Data"가 들어가는 직원의 성, 이름을 찾는 쿼리이다.

→ 'Vivian Thien' 과 'Julian Houng' 이 결과로 뽑힐 것이다.


4.  데이터베이스 스키마와 관계

 

- 스키마(Database Schema)

: 데이터베이스는 여러 개의 테이블로 구성되며, 각 테이블 간 관계는 스키마로 정의된다.

 

(예시) Spotflix의 데이터베이스

- 앨범 테이블 : 앨범의 고유ID, 아티스트 ID, 앨범 제목

- 아티스트 테이블 : 아티스트의 고유 ID, 이름, 소개

- 노래 테이블 : 노래의 고유 ID, 앨범 ID, 곡 제목

- 재생목록 테이블 : 재생목록 ID, 사용자 ID, 곡 ID

 

테이블 간 관계

- 아티스트 테이블 ↔ 앨범 테이블 : 아티스트 ID를 통해 연결

- 앨범 테이블 ↔ 노래 테이블 : 앨범 ID를 통해 연결

- 노래 테이블 ↔ 재생목록 테이블 : 곡 ID를 통해 연결

 

테이블과 테이블을 연결할 때는, 공통된 컬럼을 찾아서 JOIN 해주면 된다. 이들을 "관계형"데이터베이스라고 부르는 이유가 이것이다.


5.  SQL 구현체

SQL은 여러 구현체(예: MySQL, PostgreSQL, SQLite 등)가 존재한다. 각 구현체는 약간의 차이가 있지만, 대부분의 기능은 유사하다.

출처 : https://sellhowov.best/product_details/54182722.html

6.  결론

- SQL은 RDBMS를 다루기 위한 기본 언어이다. 

- 데이터 엔지니어는 테이블 생성/관리를, 데이터 사이언티스트는 데이터 쿼리를 위해 SQL을 활용한다.

- 데이터베이스는 여러 테이블로 구성되며, 스키마를 통해 관계를 형성한다.

- 다양한 SQL 구현체가 존재하지만, 대부분 비슷한 방식으로 사용 가능하다.


아래 문제를 풀어보자.

 

1. We can work it out

 

Which language is the industry standard to create, update, maintain and query databases?

1. English

2. Python

3. SQL

4. JavaScript

 

Answer

더보기

3. SQL
→ Structured Query Language was developed in the 70s at IBM for the exact purpose of managing and retrieving data from structured/relational databases.


2. Columns

 

Which column allows these two tables to form a relational database?

1. The Column of Marcus Aurelius

2. The 'genre_id' column

3. The 'genre_name' column

4. The 'genre_superset' column

 

Answer

더보기

2. genre_id
The genre_id column appear in both tables, so it can be used to connect them.


3. Different breeds

 

SQL is the industry standard for Relational Database Management Systems. In other words, it is to databases what English is to pop music. However, data engineers and data scientists don't use it the same way. Within the data science team at Spotflix, there are a few tasks that need to be assigned to either the data engineers or the data scientist. Can you help them do that?

 

1. Updating an artist's table after they edited their biography.

2. Creating a new table to store the songs customers listened to the most over the past years.

3. Modifying the whole songs table to remove trailing spaces entered by mistake in front of the title.

4. Querying the artist table to find all the bands that come from France.

5. Querying the lyrics table to find all the songs that have 'data' in the title.

6. Querying the top songs of the past year to identify which genre dominated.

 

Data engineers

Data scientists 

 

Answer

더보기

Data engineers → 1,2,3

Data scientists  → 4,5,6


 

반응형