Web/TIL

데이터베이스 수업

gorae_lulu 2022. 12. 21. 08:45

데이터베이스(Database)

🗨️ 데이터베이스
  • 데이터를 저장하는 구조/자료의 모음
  • 데이터의 집합소
  • Q. 데이터베이스 이전에는? 

데이터를 저장하는 공간.

MySQL, 오라클이 데이터베이스임.

이거 이전에는 사람들 저장하기 위해 뭘 사용했을까??

→그냥 파일에 저장했음.. 텍스트 파일에 저장한다던지 JSON파일에 저장한다던지..

 

 

🗨️ 파일 시스템 ( File System )
  • DBMS를 사용하기 전 데이터의 저장을 위해 이용했던 시스템
  • Q. 왜 파일 시스템을 계속 안 쓰고 데이터베이스를 이용하는 것으로 바뀌었을까?

근데 파일시스템 한계가 있음.

저장했을때 데이터 꺼내오려면 파일 처음부터 끝까지 다 읽어서 원하는 값이 있는지 다 읽어야 함..

그리고 원하는 값 찾았다 하지만 수정하려면 문자열 다 처음부터 끝까지 복사해서

원하는 부분만 수정을 해서 다시 파일 전체를 다시 저장하는….. 불편함 있음.

 

🗨️ 파일 시스템 ( File System )
  • 파일 시스템의 단점
    1. 데이터 중복
    2. 데이터 불일치

1.  데이터 중복 확인해야..

2. 데이터 불일치. 원하는 부분만 바꿔야 하는데..



그래서 나온 것이 DBMS.

 🗨️ DBMS
  • DataBase Management System
  • 파일 시스템이 가진 문제를 해결하기 위해 만들어진 것
  • 데이터베이스에 접근하고 이를 관리하기 위해 존재한다.
  • 관계형 데이터베이스 RDBMS ( Relational DBMS ) 

파일시스템이 가진 문제 해결하기 위해 만들어진 것.

어떤 데이터 저장할 때 파일이 아닌 이런 시스템사용해서 저장하면 훨씬 편리하게 관리할 수 있지 않을까 해서 만들어진 것.

그니까 파일시스템보다 더 간단하게 처리가능.

그중에서도. MySQL은 관계형 데이터베이스.

어떠한 저장공간끼리 서로 관계를 맺을 수 있다는 말.

테이블 간의 관계성을 맺어줄 수 있는 게 RDBMS.

난 MySQL사용해 볼 것.

RDBMS는 어쨌든 관리를 편안하게 하기 위한 시스템, 프로그램일 뿐이고.

RDBMS 다루기 전에

데이터베이스를 다루기 위한 용어를 알아야 RDBMS를 사용할 수 있다.

데이터베이스 용어를 배워보자.

일단. 데이터베이스 안에는 테이블(간단히 말해서 표.) 이란걸 만들 수 있는데,,,

가로줄은 행. 세로줄은 열.

세로줄에 저장된 값들의 인덱스를 젤 위에서 하나하나 매기고 있는데. 속성이라 함. 식별자.

내가 학생테이블을 만들고 학생테이블에 저장하고 싶은 게 학번, 이름, 학과명, 성별, 성적 등이 저장된다고 하면.

학번 저장할 때 . 속성입니다. 이름속성, 학과명속성, 성별속성, 성적속성.

그럼 은 무엇이냐.. 이제 이 속성에 맞게끔 여러분들 데이터를 저장해야.

각각 인덱스에 맞게끔 데이터를 저장해야 함. 한 행 한 줄로 저장되어 있음. 행 튜플로 불리고 있음.

저장된 값이라고 생각함 됨.

사실 데이터베이스할 때 열, 행 잘 안 쓰고 칼럼 잘 씀. 칼럼은 속성이다. 

 

🗨️ 데이터베이스 용어
• Key

     -데이터베이스에서 튜플을 찾거나 순서대로 정렬할 때 구분하고 정렬의 기준이 되는 속성
• 기본키 ( PK, Primary Key )
    -메인 키로 한 테이블에서 특정 튜플(행)을 유일하게 구별할 수 있는 속성
    - Null 값 불가
    - 중복 값 불가
• 외래키 ( FK, Foreign Key )
    -어떤 테이블의 기본키를 참조하는 속성

RDBMS가 관계성 맺어줄 수 있다고 했는데

그 관계성을 맺어줄 때 사용하는 게 기본키, 외래키로 연결을 해준다..

키는 데이터베이스에서 튜플을 찾거나 순서대로 정렬할 때 구분하고 정렬의 기준이 되는 속성

튜플은 어떠한 데이터. 뭔가 저장된 한 행.이라 했는데

우리가 학교 들어간다 하면 학번은 중복이 될 수 없음.

이런 중복이 될수 없는 값들을 기본키로 지정해 놓게 되면

어떠한 테이블에서 특정 튜플을 유일하게 구분하는 속성을 기본키 ( PK, Primary Key ).로 줄 수 있음. 

 

참고) Null 이란? 

Null? 데이터 값이 존재하지 않음을 표시

• 공백, 숫자 0과 다름

• 아직 정의되지 않은 미지의 값

• 현제 데이터를 입력하지 못하는 경우를 의미하기도

 

이런 식으로 고객테이블에 참조를 걸어놓는 키를 외래키라 함. 포린키. 즉 고객아이디.

 


이제 mysql 사용해 보자.

 

 🗨️MySQL
• 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템 ( RDBMS )
• 오픈 소스
윈도우, Mac, 리눅스 등 다양한 운영체제에서 사용 가능

MySQL설치 -로컬

https://dev.mysql.com/downloads/mysql/

 

MySQL :: Download MySQL Community Server

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86

dev.mysql.com

custom 누르고 next.

 

MySQL Servers 타고타고 끝 추가. Applications에 MySQL Workbench 타고타고 끝 추가. next.

 

Execute 누르고 next.

 

설치뒤에 

MySQL 실행 – 로컬 (Windows)

 

검색창에 cmd 명령프롬프트 켜고,

MySQL 기본 경로 설치하고 , 일단 MySQL 있는 위치까지 이동함.

이동해야 MySQL 명령어가 먹음.

경로. 파일관리자 들어가서.

보통 내 PC →로컬디스크 C:→ Program files → MySQL →MySQL Server8.0→bin인데

명령프롬프트에  위 경로 쓰고 이동.

이 상태에서 MySQL 명령어 칠 수 있는데..

여기서 mysql -u root -p 누르면 패스워드 물어보면 패스워드 입력하고.

mysql 접속 성공.

 

명령어를 cmd로 할 수 있으나 편리하게

MySQL 워크벤치 이요한겠음.

 

 

 SQL문

 🗨️SQL문
  • Structured Query Language
  • 구조적 질의 언어
  • 데이터베이스를 제어하고 관리할 수 있는 목적의 프로그래밍 언어

데이터 처리할 때 sql문.

 

 

DDL

 🗨️SQL문-DDL
  • DDL ( Data Definition Language )
  • 데이터베이스를 정의하는 언어
  • 데이터베이스를 제어하고 관리할 수 있는 목적의 프로그래밍 언어

 

DDL - CREATE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Web > TIL' 카테고리의 다른 글

Window에 Mongo DB 설치 및 환경 설정하기, 오류 해결  (0) 2023.07.06
파일 업로드 수업  (0) 2022.12.06
form 전송 수업  (0) 2022.11.30
Epxress, ejs 수업  (0) 2022.11.28
Node.js 수업  (0) 2022.11.20