강의 내용

RDBMS

사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어

데이터베이스

컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미

RDS

AWS가 서비스하는 분산 관계형 데이터베이스

데이터베이스를 설치, 관리, 업데이트 할 필요없이 데이터베이스를 쉽게 운영 가능

백업과 스토리지, lops(단위 시간당 읽기/쓰기 횟수) 확장이 용이

 

실습 내용

시스템 분석하기

유저 닉네임, 유저 이름, 유저 프로필 사진, 유저 소개글, 유저 웹사이트 링크, 팔로워 수, 팔로잉 수, 게시물 개수,

게시물 사진, 게시물 내용, 게시물 좋아요 수, 게시물 댓글 수, 게시물 올린 시간, 댓글 내용, 댓글 올린 시간, 태그된 유저,

댓글 좋아요 수, 대댓글 여부

 

위의 데이터가 필요

 

논리

Entity - 객체

Attribute - 속성

Relation - 관계

 

유저 테이블

유저 닉네임, 유저 이름, 유저 프로필 사진, 유저 소개글, 유저 웹사이트 링크

 

팔로우 테이블

팔로워 수, 팔로잉 수

 

게시물 테이블

게시물 개수, 게시물 사진, 게시물 내용, 게시물 좋아요 수, 게시물 댓글 수, 게시물 올린 시간

 

댓글 테이블

댓글 내용, 댓글 올린 시간, 태그된 유저, 댓글 좋아요 수, 대댓글 여부

 

물리

Entity -> 테이블

Attribute -> column

 

유저 : 게시물 = 1 : N

게시물 : 댓글 = 1 : N

유저 : 댓글 = 1 : N

 

정규화

데이터베이스를 모델링 할 때 가장 중요한 것

테이블 간의 중복된 데이터를 허용하지 않음

 

 

챌린지 과제

AWS RDS 구축하기

프리 티어 사용하여 MySQL로 구축

구축 후 파라미터 그룹에서 character_set으로 검색했을 때 나오는 모든 값들을 utf8mb4로 변경

collation으로 검색했을 때 나오는 모든 값들을 utf8mb4_general_ci로 변경

time_zone을 검색하여 Asia/Seoul로 변경

 

RDS 외부 접속하기

인바운드 규칙에 나의 IP주소 추가

DataGrip에 Host는 구축한 RDS에 나오는 엔드포인트 입력

User와 Password는 RDS를 구축했을때 입력했던 정보 입력

 

워크북 및 추가 개념

RDBMS

RDB

Relational Database의 약자로 관계형 데이터베이스

다른 테이블과의 관계를 가짐

 

DBMS

Database Management System의 약자로 데이터베이스를 조작하는 별도의 소프트웨어

데이터베이스를 관리하여 응용 프로그램들이 데이터베이스를 공유하고 사용할 수 있는 환경을 제공

 

NoSQL

Not Only SQL의 약자로 RDB 형태의 관계형 테이터베이스가 아닌 다른 형태의 데이터 저장 기술

 

SQL

DDL(Data Definition Language)

데이터 정의어

데이터를 생성하거자 수정, 삭제 등 데이터의 전체 골격을 결정하는 역할

CREATE, ALTER, DROP, TRUNCATE

 

DCL(Data Control Language)

데이터 제어어

데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할

GRANT, REVOKE, COMMIT, ROLLBACK....

 

DML(Data Manipulation Language)

데이터 조작어

정의된 데이터베이스에 입력된 레코드를 조회하거나 수정하거나 삭제하는 등의 역할을 하는 언어

데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용하는 언어

SELECT, INSERT, UPDATE, DELETE

 

TCL(Transaction Control Language)

DCL에서 트랜잭션을 제어하는 명령인 COMMIT과 ROLLBACK만을 따로 분리해서 TCL로 표현

 

Database 용어

Table

정보를 구분하여 저장하는 기본 단위

 

Row

레코드 혹은 튜플로 불리며, 테이블에서 단일 구조 데이터 항목을 가리킴

 

Column

특정한 단순 자료형의 일련의 데이터값과 테이블에서의 각 열

 

Schema

전체적인 데이터베이스의 골격 구조를 나타냄

데이터베이스의 엔티티와 그 엔티티들 간의 관계를 정의

 

Key

조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 어트리뷰트

  • 1:1 관계
  • 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우
  • 1:N 관계
  • 하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우
  • N:M 관계
  • 여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우

 

NoSQL의 종류

Key-Value Database

Wide-Column Database

Document Database

Graph Database

 

MySQL을 제외한 RDBMS 종류

Oracle

PostgreSQL

SQL Server

SQLite

 

 

후기

데이터베이스에 대한 전반적인 이론에 대해 학습하는 시간이었다.

이미 데이터베이스 전공 수업을 통해 어느정도 아는 내용이어서 이번 강의는 수월하게 이해하고 넘어갈 수 있었다.

RDS 구축, 그리고 DataGrip과 연결하는 부분 역시 크게 어렵지 않았다.

인스타그램을 분석하면서 저 많은 데이터들을 하나의 테이블로 묶지 않고, 어떻게 하면 효율적으로 테이블을 설계할 수 있을까?에 대해 좀 더 고민해보아야겠다.

복사했습니다!