1. 데이터베이스 개요
1) database VS file system
지금까지는 우리가 input에 입력을 해도 f5를 누르면 value가 사라졌었죠..
이제는 데이터 베이스를 연결해서 사라지지 않도록 해볼겁니다!
우선 데이터 베이스가 뭔지부터 알아야 겠죠?
데이터베이스란? 데이터를 저장하는 구조/자료의 모음을말합니다.
우리는 자료를 저장할 떄 주로 microsoft exel에 표 형태로 데이터릉 저장했었죠?
그런 웹사이트에서는 파일을 통해서 데이터를저장하지 않고 왜 데이터베이스를 사용할까요?
바로 파일 시스템의 단점 때문입니다.
파일시스템
그래서!!!
우리는 이제부터 이런 데이터들에 대해서 파일시스템 대신에 데이터베이스를 사용해서 데이터를 관리할 겁니다!
2) DBMS :Data Base Management System
데이터 베이스에 접근하고 이를 관리하기 위해 존재합니다. 즉, 사용자와 데이터베이스를 연결시켜주는 소프트웨어로, 데이터베이스 사용자가 데이터베으스를 생성, 공유 관리할수 있도록 하는 역할을 합니다!
그 중에서도 관계가 추가 된것을 RDBMS라고 하는데요!
RDBMS: "Relational" + DBMS
그 중에서도 우리는 MySQL이라는 것을 써보도록 할거에요! MySQL의 특징은 운영체제마다 달라지는 것이 별로 없고, 다야한 운영체제를 지원하며, 무엇보다 무료라고 합니다!
3) DataBase 용어
<데이터 베이스 구조>
-열(column, Attribute, 속성)
-행(Record, Tuple, 튜플)
-테이블(Table, Relation)
-키(key): 데이터 베이스에서 튜플(행)을 찾거나 정렬할 때 구분하고 정렬의 기준이 되는 속성입니다(이 테이블에서는 학번, 이름, 학과명, 성별이 key가 될 수 있겠죠?)
-기본키(PK, PRIMARY KEY):메인 키로 한 테이블에서 특정 튜플(행을 유일하게 구별할 수 있는 속성)
-> 기본키의 특성은 NULL값, 중복값이 불가능하다는 것 입니다!
⚠️기본 키 선정시 고려사항
- 테이블 내 튜플을 식별할 수 있는 고유한 값을 가져야 함(중복X)
- NULL값 허용 안됨(식별해야하기 때문)
- 키 값의 변동이 일어나지 않아야 함(전화번호 같은 건 기본키가 될 수 없다!)
- 최대한 적은 수의 속성을 가진 것이어야 함(예를 들어서 두개의 속성으로 하나의 행을 추출할 수 있고, 하나의 속성으로도 하나의 행을 추출할 수 있다면 하나의 행으로 추출하는것이 더 효율적이다~)
- 향후 키를 사용하는데 문제 발생 소지가 없어야 함(예를 들어서 주민번호를 주키로 사용하게되면 추후에 개인정보관련해서 문제가 발생할 수 있기 때문에 주키로 사용할 수 없습니다!)
-외래키(FK, Foreign Key): 어떤 테이블의 기본키를 참조하는 속성
-> 외래키가 있기 때문에 테이블간 관계를 맺을 수 있습니다!
⭐외래키 특징
- 다른 테이블의 기본키를 참조하는 속성
- 참조하고(외래키) 참조되는(기본키) 양쪽 테이블 도메인은 서로 같아야 함 (여기에서 도메인은 서버에서 배운것과는 다른 개념으로, '속성이 가질 수 있는 값의 집합'이라는 의미 입니다!)
- 참조한다? 다른 테이블의 기본 키를 바라본다!
- NULL값과 중복값 허용
- 자기자신의 기본키를 참조하는 외래키기능
2. MySQL설치
다음으로는 My SQL을 설치해 보았습니다!
저는 Window운영체제를 사용해서 쉽게 설치했는데 MAC은 어려움이 많은 것 같더라구요... 버전을 낮춰서설치하기도 했습니다..
아! 그리고 설치이후에는 My SQL을 로컬에서도 실행할 수 있었는데요..
이런식으로 할 수 있는데 저장되 안되고 이것저것 불편함이 많아서 MySQL workbench라는 걸 사용합니다!
3. MySQL을 사용해서 SQL배우기!
이제 오늘 수업의 핵심이라고 볼 수 있었던 MySQL을 사용해서 데이터베이스를 만들고 그 안에 표를 만들고 표 안에 값들을 넣고 이것저것 해 보도록 하겠습니다!
아 그리고 VSCODE에서 MySQL을 사용하고 싶다면
이 확장 프로그램을 설치해서 해볼 수 있어요!
자 그럼 데이터 베이스 어떻게 생성하고 관리하는지 알아보도록 할게요!
우선 표, 데이터베이스 이런것들을 아무런 순서 없이 만들 수는 없어요~~
데이터 베이스가 존재해야 테이블을 만들 수 있고, 테이블이 있어야 그 안에 값들을 넣을 수 있습니다!
그래서! 데이터 베이스 구축단계는 다음과 같습니다!
데이터베이스를 만들어 보기 전에 SQL이 뭔지정도는 알고 있어야 겠죠?
SQL은 구조적 쿼리 언어로 관계형 데이터 베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 다른 프로그래밍 언어와의 가장 큰 차이점은 실행 순서가 없는 비절차적인 언어라는 점 입니다!!!
SQL은 기능에 따라서
- 데이터 정의어(DDL)
- 데이터 조작어(DML)
- 데이터 제어어(DCL)
이렇게 세가지로 분류해 볼 수 있습니다!
그럼 하나하나 살펴보고 코드도 작성해봐야겠죠?
1) 데이터 정의어(DDL:Data Definition Language)
-CREATE문 : 데이터베이스와 테이블을 생성하는 명령어
- 테이블 이름, 열 이름, 데이터 형식등을 지정
- 기본키 , 외래키 정의
이건 sesac이라는 데이터 베이스를 생성한 것이고
이건 product라는 테이블을 생성한 것입니다.
생성한 데이터 베이스는
을 통해서 확인해 볼 수 있고
생성한 테이블은
을 통해서 확인 할 수 있습니다.(현재 사용중인 데이터 베이스의 모든 테이블을 조회할 수 있습니다)
아 그런데 중요한건 이거 실행하기전에 꼭 사용 선언을 해 주어야 합니다!! 안그러면 목록에서 확인할 수 없어요~~
테이블 구조확인
테이블 삭제
drop과 truncate의 차이는 drop은 테이블 존재 자체를 없애는 것이고, truncate은 테이블 구조만 남겨놓고 테이블의 모든 행을 일괄 삭제하는 거에요!
테이블 행 추가
테이블 행 수정
2) 데이터 조작어(DML)
오늘은 여기까지 배워보았구요!!
금요일에는 DCL과 다른 것들을 또 배우겠죠?? 밀리다가 중간에 임시저장으로 남겨놓은 내용이 많은데 이번 주말에는 꼭 꼭 다 복습하고 올려볼 수 있도록 하겠습니다...
금요일도 화이팅...!
'[새싹X코딩온]웹 풀스택' 카테고리의 다른 글
[새싹X코딩온]웹 풀스택 7주차(8/28)회고록|MVC에 MySQL연결하기 (1) | 2023.09.02 |
---|---|
[새싹X코딩온]웹 풀스택 6주차(8/25)회고록|MYSQL+MVC패턴 (0) | 2023.08.30 |
[새싹X코딩온]웹 풀스택 4주차(8/21)회고록|폼 유효성검사, 파일전송하기 (0) | 2023.08.23 |
[새싹X코딩온]웹 풀스택 4주차(8/7)회고록|서버구축하기 (0) | 2023.08.11 |
[새싹X코딩온]웹 풀스택 2주차(7/24)회고록|JavaScript(1)-html파일에 JS불러오는 방법 및 기본문법(형변환까지) (1) | 2023.08.06 |