[DB] 백엔드 데이터베이스 기초다지기

준리·2021년 10월 26일
0

엘리스/* AI트랙 3기

목록 보기
11/23

그래. 아무래도 프론트엔드는 이번 생엔 보류하고 처음 시작하는 백엔드를 노려보자 (긍정적인 편) 엘리스AI트랙 3기 화이팅!

데이터베이스 이해하고 시작하기

데이터베이스란 저장 및 보존하는 시스템
Data + Base = 체계와 규격에 맞춰진 정보만 들어갈 수 있고, 규격에 따라 서로 관련있는 데이터를 모아둔 곳이 데이터베이스라고 할 수 있다.

(누군가 정의한 그럴듯한 정의)
데이터베이스는 한 조직의 여러 응용 시스템들이 공유해서 사용할 수 있도록 데이터들을 통합해 체계적으로 조직한 후 저장한 운영 데이터의 집합

지금까지 데이터베이스는 많은 시행착오를 거치며,

  • 서비스 소프트웨어 안의 내장변수로 데이터 관리하기
  • 내장변수 관리의 불편한 점
  • 서비스 바깥의 txt 파일에 기록하기
  • text 파일 기록의 불편한 점
    • 10기가짜리 파일을 열때 메모리 아작나고 느림
    • 검색도 어려움
  • 데이터 무결성 문제
    • 동시접근 시 하나의 셀을 서로 고치고 있을 때 문제 발생
    • 최종적으로 어떤 데이터를 저장할 것인가?!
  • 데이터 DeadLock 문제
    • 교착 상태(deadlock)란 2개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 의미
  • 데이터 일관성, 동시성, 영속성, 유지보수 등의 문제
    • 질의는 쿼리(검색) > 9번째 칼럼을 싹다가져와 라는 쿼리(검색)요청을 함

지금은 위와 같은 문제를 대부분 해결함

어떻게?

  • 단순 데이터베이스의 등장(DBMS)
  • 관계형 데이터베이스의 등장(RDBMS)
  • (최근)분산형 데이터베이스의 등장, NOSQL
    • 인터넷이 발달하면서 네트워크로 연결해 서로 분산해서 처리함

그래서 데이터베이스가 뭔데? 직접해보자

우리는 실습에서 마리나DB를 사용했다. 설치방법

WINDOWS 사용자라면 win key를 누르고 cmd를 입력한다. (명령 프롬프트 열기)

mariadb -u (username(기본 root)) -p 접속하기

show databases; db 내역 보여줘

use (databaes_name); 이거 보여줄래?

select * from (table_name); 테이블안의 모든 데이터를 조회할 수 있음

create database (db_name); db_name이라는 db를 만들어줘

use (MYHOJUNDB); 저기 db에 접속해줘

create table student_test; 해당 테이블을 만들자

insert into student_test(name, test, score, test_date) VALUES -> ('ho', 'SQL', 75, '2021-11-05'), -> ('ya' 'Turing', 95, '2021-01-01');

select * from student_test; 테이블의 데이터를 보여줘

show tables; 데이타 베이스 안에 테이블이있는지 보여줘

SQL에서 조건을 줄때 항상 WHERE 다음에 준다 기억

delete * from student_test where name='ho' and test='SQL';

이름이 '호'이고 테스트명이 SQL인 것만 지워줘

select * from student_test; 확인해보자

delete * from student_test;

라고하면 그 안에있는 데이터를 삭제하고 테이블자체를 삭제하진 않음
그래도 엄청 조심해야함

일련의 작업들을 트랜잭션이라고함
트랜잭션마다 롤백이라는 백업이 내장되어있음

commit; 해주고 나와야 저장된다.

profile
트렌디 풀스택 개발자

0개의 댓글