ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹기초 11주차
    보안/WEB 2024. 3. 13. 14:44

    (2) DATABASE2 MySQL - 1.수업소개 - YouTube

    처음에는 파일로 만족했지만 정보가 다양해지면서 파일만으로는 정보를 효과적으로 입력, 저장, 출력하는 것이 어려워졌다.

    1960년부터 파일의 한계를 극복하기 위한 시도가 시작되었다.

    누구나 쉽게 데이터를 정리정돈할 수 있는 전문적인 소프트웨어-> 데이터베이스

    1970년 관계형 데이터베이스가 고안되었다.

    관계형 데이터베이스를 이용하면 데이터를 표의 형태로 정리정돈할 수 있고 정렬, 검색과 같은 작업을 빠르고 편리하고 안전하게 할 수 있다.

    1994년 스웨덴에서 개발되기 시작한 MySQL은 무료이고 오픈 소스이면서 관계형 데이터베이스의 주요한 기능을 대부분 갖추고 있다.

     


    (2) DATABASE2 MySQL - 2.데이터베이스의 목적 - YouTube

    스프레드시트와 mysql의 공통점: 데이터를 표의 형태로 표현해준다.

    스프레드시트와 mysql의 차이점: 스프레드시트에는 사용자가 클릭해서 데이터를 조작한다. 최신 관계형 데이터베이스는 ql이라고 하는 컴퓨터 언어를 이용해서 데이터를 제어할 수 있다. 즉 코드를 통해서 데이터를 조작할 수 있다.

    데이터베이스를 부품으로 사용한다.

    누구나 글을 쓰면 직접 데이터베이스를 제어하지 않아도 된다. 알아서 저장된다.


    (2) DATABASE2 MySQL - 3.0.MySQL 설치 - YouTube

    mysql community edition download - community edition을 사용한다.

    mysql community server에서 다운로드하면 된다.


    데이터는 표에 최종적으로 저장된다. 표가 늘어나면 많아진 표를 정리정돈해야 한다.

    mysql에서는 연관된 표를 그룹핑해서 연관되어 있지 않은 표들과 분리해서 사용하는 파일의 폴더가 있는데 이를 데이터베이스라고 한다.

    mysql에서는 데이터페이스 대신 '스키마' 라는 표현을 사용한다. (표들을 서로 그룹핑할 때 사용하는 일종의 폴더 라는 뜻)

    스키마는 서로 연관된 데이터들을 그룹핑해준다.

    스키마가 또 많아지면 '데이터베이스 서버'에 저장한다.

    즉 mysql 설치하는 행위는 데이터베이스 서버라는 프로그램을 설치한 것이고 그 프로그램이 가지고 있는 기능성을 이용해서 데이터와 관련된 작업을 한다.



    (2) DATABASE2 MySQL - 5.서버접속 - YouTube

    • 데이터베이스의 효용

    데이터베이스는 데이터베이스 자체적인 보안 체계를 가지고 있기 때문에 데이터를 좀 더 안전하게 보관할 수 있다.

    권한 기능이 있어서 사람을 등록할 수 있다. 사람을 등록하면 모든 테이블과 스키마에 대해 읽기, 쓰기, 수정, 삭제를 할 수 있다. 특정 테이블만을 제어할 수 있도록 할 수도 있다. 차등적으로 권한을 줄 수도 있다.

    • -uroot: 기본 유저(관리자)


    (2) DATABASE2 MySQL - 6. 스키마의 사용 - YouTube

    • 데이터베이스 생성하기 ( 끝에는 세미콜론 붙임!!)

    • 데이터베이스 잘 생성되었는지 확인하기

    • opentutorials 안에 표를 만들건데 데이터베이스 사용하겠다고 mysql에게 알리기

    표 만들 준비 끝


    (2) DATABASE2 MySQL - 7.SQL과 테이블의 구조 - YouTube

    SQL= Structured Query Language

    • sql은 쉽다.
    • 중요하다. 관계형 데이터베이스에 속하기 때문에 데이터베이스 서버를 제어할 때 사용한다. (가성비 좋음)

    • 표=table
    • x축을 행, row, record 라고 한다. 데이터 자체이다.
    • y축을 열, column이라고 한다. 데이터의 타입(구조)이다.


    (2) DATABASE2 MySQL - 8.1.테이블의 생성 - YouTube

    각 열을 정의해주고 데이터를 넣는다. sql을 통해서 어떻게 하는지 알아보자.

    sql에서 table 작성하는 방법- sql cheat sheet 를 참고해서 만들면 쉽다.

    이번 강의에서는 첫 번째 열인 id까지만 만드는 게 목표이다.

    • 숫자 노출 정도는 11로 한다.
    • 본문은 나중에 작성해도 되는 것
    • 행 삭제하라고 얘기할 때는 같은 제목이 있을 수 있으니까 id값을 1씩 늘려준다. (자동으로 1씩 증가)

    (2) DATABASE2 MySQL - 8.2테이블의 생성 - YouTube

    • 두 번째 열부터 만들어보자. -> 옆이 하나의 열에 대해 생성하는 명령이다.
    • id 값은 각각의 값이 중복되지 않도록 primary 를 써준다.

    error 1820 나오는 경우: SET PASSWORD=PASSWORD('앞으로 사용하고 싶은 비밀번호') 를 적는다.

    이렇게 하면 앞으로 접속할 때 password에 ( )안의 비밀번호를 적어준다.


    (2) DATABASE2 MySQL - 9.CRUD - YouTube

    CREATE, READ, UPDATE, DELETE 가 중요하다.


    (2) DATABASE2 MySQL - 10.INSERT - YouTube

    데이터를 추가하는 것을 create 라고 한다.

    sql로 해보자.

    mysql create row 검색어를 사용하면 된다.

    • 행 추가하기

    • 행 읽기

    • 다시 다른 행들 추가해주기

    • SELECT * FROM topic 자주 사용함


    (2) DATABASE2 MySQL - 11.SELECT - YouTube

    • 모든 데이터를 화면에 출력하고 싶은 경우

    • 특정 열만 보이게 제한하기

    • 특정 단어 찾기

    • 특정 열의 특정 행만 보이게 하기-where 문

    • 큰 숫자부터 정렬 순 바꾸기

    • 큰 숫자부터 정렬 순 바꾸기+ 몇 개까지 보이게 할 지 제한 주기


    (2) DATABASE2 MySQL - 12.UPDATE - YouTube

    • 데이터를 변경하기

    예시로 ORACLE 의 description 'ORACLE is ...' 을 'Oracle is ...' 으로 바꾸었다.

    SELECT * FROM topic; 은 변경이 잘 이루어졌는지 확인용임


    (2) DATABASE2 MySQL - 13.DELETE - YouTube

    • 데이터 삭제하기

    하이라이트 친 부분을 삭제하자.


    (2) DATABASE2 MySQL - 14.수업의 정상 - YouTube

    • 데이터베이스 = 본질
    • 데이터베이스는 CRUD 라는 특성을 가진다.


    데이터가 중복되는 부분이 존재한다. 이는 개선할 것이 있다는 신호이다.

    중복되는 데이터가 정말 많은 경우 여러 문제점이 발생할 것이다.

    표에서 저자들의 정보를 별도의 표인 'author'을 만들어준다. 열은 id, name, profile로 정해준다.

    id는 순차적으로 1씩 정해주자.

    topic 표의 author 칸은 author_id로 바꾸어주자.

    중복된 데이터는 사라지고 식별자인 id값으로 대체된다.

    유지보수가 더 편해졌다.

    데이터를 하나의 표로 합쳐진 것을 보여줄 수 있다.


    (2) DATABASE2 MySQL - 16.테이블 분리하기 - YouTube

    이름 먼저 바꾸고 시작 (실습 원활하게 하려고)

    • 새로운 table 인 topic 생성 + 잘 생성되었는지 확인

    • author table 생성

    • topic backup과 topic 에 insert

    • topic table, author table 확인


    (2) DATABASE2 MySQL - 17.JOIN - YouTube

    • 두 개의 테이블의 결합고리는 topic table-author id 이고 author table-id 이다.
    • author table 에 있는 행을 가져와서 topic table 에 붙이는 것이 목표

    현재 나오는 것

    원하는 것: topic table 과 author table 을 결합하는 것

    author_id와 id 값이 같은 값이고 이를 같은 행에 위치해있다.

    * 는 모든 열을 의미한다.

    • id, title, description, created, name, profile 만 select (author_id 와 id 제외하고 다 select)하면 topic에 있는 id와 author 에 있는 id 중 무엇인지 몰라 애매하다는 error 가 발생한다.
    • 따라서 id 앞에 topic.id 라 하고 다시 하자.

    • id를 topic_id 로 바꾸고 싶은 경우


    (2) DATABASE2 MySQL - 18.인터넷과 데이터베이스 - YouTube

    mysql은 내부적으로 인터넷을 활용할 수 있도록 고안된 시스템이다.

    요청하는 쪽을 클라이언트, 응답하는 쪽을 서버 라고 한다.

    인터넷은 갑과 을에 해당되는 컴퓨터가 서로 정보를 요청하고 응답하면서 동작하는 시스템이다.

    정보를 요청하는 쪽을 웹 클라이언트, 서버 컴퓨터에 설치되어 있는 웹을 위한 컴퓨터를 웹서버라고 한다.

    데이터베이스 서버에는 실제로 데이터가 저장이 되고 데이터베이스 클라이언트를 통해 데이터베이스 서버에 접속할 수 있다.

    데이터베이스 서버는 반드시 데이터베이스 클라이언트를 사용해야 한다.

    mysql 모니터가 데이터베이스 클라이언트 중 하나이다. mysql 서버에 접속할 수 있도록 기본적으로 제공하는 클라이언트이다. mysql 모니터는 명령어를 통해서 데이터베이스 서버를 제어하는 프로그램이다.

    • mysql 모니터
    • mysql 워크벤치

    를 사용하면 gui 환경에서도 데이터베이스를 다룰 수 있다.

    데이터베이스 클라이언트들이 데이터베이스 서버를 중심으로 데이터를 넣고 빼는 것이 가능하다.


    (2) DATABASE2 MySQL - 19.MySQL Client - YouTube

    내가 사용하는 것은 하이라이트 친 부분이다.

    mysql 모니터의 장점

    • 어디에서나 사용 가능

    mysql 모니터의 단점

    • 명령어로만 제어하므로 명령어를 기억해야 한다.

    mysql은 명령을 이용해서 제어하는 명령어 기반 프로그램이다.

    (마우스를 가지고 조작할 수 있는 프로그램을 gui 라고 함)


    아까 만들었던 opentutorials 가 보인다.

    opentutorials 더블클릭- 쿼리 클릭해서 입력- 번개 표시 클릭 하면 결과가 나온다.

    스키마를 만들고 싶으면 화면 왼쪽 상단에 create a new schema in a connected server ( 자세한 내용은 동영상으로 확인)


    (2) DATABASE2 MySQL - 21.수업을 마치며 - YouTube

    데이터가 많아지면 양적인 측면에서 문제가 될 수 있다.

    테이블을 효율적으로 설계하는 것이 중요하다.

    백업이 제일 중요하다.

    백업과 관련해 mysqldump, binary log 를 검색하는 것을 추천한다.

    클라우드에 대한 흐름을 관찰하는 거도 중요하다.

    데이터베이스 자체를 쓰는 경우보다는 이를 일종의 부품으로 사용하는 경우가 대부분이다.

    '보안 > WEB' 카테고리의 다른 글

    웹기초 13주차  (0) 2024.03.13
    웹기초 12주차  (0) 2024.03.13
    웹기초 10주차  (0) 2024.03.13
    웹기초 9주차  (0) 2024.03.13
    웹기초 8주차  (0) 2024.03.13
Designed by Tistory.