RDATABASE STUDY
INCHEON DEV'S
1st-time
진행 목표
• 사이드 프로젝트나 취미 개발에 사용할 수 있을 정도
• 따라서 체계적인 DB 학습용과는 거리가 멀 수도 있음…
DB(DATABASE)?
• 데이터 입출력 전담 시스템
• 내부적으로 좋은(?) 알고리즘을 사용하여 저장 효율 및 검
색 등의 기능을 제공
우리는 이미 직관적이며 매우 쉬운 DB를 잘 알고 있다(?!)
가장 직관적이고 쉬운 그 DB
하지만 우리가 다루려는 DB는?
• (웹 개발에 포커스가 맞춰져 있다는 전제)
• 온라인 상에서 여러 사람이 읽고 쓰는 DB
(좁은 의미에서)
서버용 DB 프로그램 - 온라인에서 동적인 컨텐츠 저장소
최근의 DBMS의 분류
• RDB = 관계형 데이터베이스
• 데이터를 Table형태로 구조화 = 엔티티(Entity)
• 여러 엔티티 간의 관계(Relationship)를 설정하여 다양한 기능 구현
• SQL이라는 언어를 사용해 데이터를 다룬다
• NoSQL =
오해하지 말자
• NoSQL이 RDB보다 늦게 나왔다고 최신형 DB가 아님
• NoSQL vs RDB 대립 구조가 아니다!!
• NoSQL은 목적이 대용량 분산 저장에 특화
• 빠르게 읽고 쓰는데 집중해서 복잡한 검색, 정렬 기능을 제거
• (최악의 경우 데이터의 무결성의 보장되지 않을 수 있다.)
• 둘 중 하나만 써야 하는 것이 아니다!!
• 상황과 목적 따라서 둘 DB를 다 쓰는 것이 가장 옳다?!
DB 종류
• RDB :
• ORACLE, MSSQL, DB2 (기업용 유료 = xx비쌈)
• MySQL(MariaDB), SQLite, PostgreSQL, CUBRID
• NoSQL
• MongoDB, Hbase, Cassandra, …
• Radis, Firebase-DB
MYSQL(MARIADB) 선택 이유
• 일단 무료
• 유저 많음
• 커뮤니티 지원받기 수월
• 구글링하기 수월
환경 설정
• MAMP로 해결
• apache(nginx) + php + mysql
• phpMyAdmin : 관리툴이 편함
• 스위치 형태로 서비스를 키고 끌 수 있음
설치 과정
• Windows
• 설치시 pro 및 bunjor 옵션 해제하고 설치
• Mac OSX
• 설치후 phpMyAdmin 업그레이드가 살짝 필요
PHPMYADMIN 새로 설치
https://youtu.be/pHSRXT6oOqM
기본 SQL
• DDL -> CRUD
• create
• select
• update
• delete
TEST 유저 생성
• 익숙해지기 전까지 조금 안전하게
• test 데이터베이스 전용 test 유저 생성
create user 'test'@'%' identified by 'test';
grant all privileges on test.* to 'test'@'%' identified by 'test';
flush privileges;
[실습] 테스트 하기
• create 테스트 : test 테이블 생성
• id => primary key 설정, auto increment
• value => varchar(255)
• insert 테스트
• delete 테스트
• drop 테스트

토이 프로젝트를 위한 속성 RDB(MySQL) 스터디 1

  • 1.
  • 2.
    진행 목표 • 사이드프로젝트나 취미 개발에 사용할 수 있을 정도 • 따라서 체계적인 DB 학습용과는 거리가 멀 수도 있음…
  • 3.
    DB(DATABASE)? • 데이터 입출력전담 시스템 • 내부적으로 좋은(?) 알고리즘을 사용하여 저장 효율 및 검 색 등의 기능을 제공 우리는 이미 직관적이며 매우 쉬운 DB를 잘 알고 있다(?!)
  • 4.
  • 5.
    하지만 우리가 다루려는DB는? • (웹 개발에 포커스가 맞춰져 있다는 전제) • 온라인 상에서 여러 사람이 읽고 쓰는 DB (좁은 의미에서) 서버용 DB 프로그램 - 온라인에서 동적인 컨텐츠 저장소
  • 6.
    최근의 DBMS의 분류 •RDB = 관계형 데이터베이스 • 데이터를 Table형태로 구조화 = 엔티티(Entity) • 여러 엔티티 간의 관계(Relationship)를 설정하여 다양한 기능 구현 • SQL이라는 언어를 사용해 데이터를 다룬다 • NoSQL =
  • 7.
    오해하지 말자 • NoSQL이RDB보다 늦게 나왔다고 최신형 DB가 아님 • NoSQL vs RDB 대립 구조가 아니다!! • NoSQL은 목적이 대용량 분산 저장에 특화 • 빠르게 읽고 쓰는데 집중해서 복잡한 검색, 정렬 기능을 제거 • (최악의 경우 데이터의 무결성의 보장되지 않을 수 있다.) • 둘 중 하나만 써야 하는 것이 아니다!! • 상황과 목적 따라서 둘 DB를 다 쓰는 것이 가장 옳다?!
  • 8.
    DB 종류 • RDB: • ORACLE, MSSQL, DB2 (기업용 유료 = xx비쌈) • MySQL(MariaDB), SQLite, PostgreSQL, CUBRID • NoSQL • MongoDB, Hbase, Cassandra, … • Radis, Firebase-DB
  • 9.
    MYSQL(MARIADB) 선택 이유 •일단 무료 • 유저 많음 • 커뮤니티 지원받기 수월 • 구글링하기 수월
  • 10.
    환경 설정 • MAMP로해결 • apache(nginx) + php + mysql • phpMyAdmin : 관리툴이 편함 • 스위치 형태로 서비스를 키고 끌 수 있음
  • 11.
    설치 과정 • Windows •설치시 pro 및 bunjor 옵션 해제하고 설치 • Mac OSX • 설치후 phpMyAdmin 업그레이드가 살짝 필요
  • 12.
  • 13.
    기본 SQL • DDL-> CRUD • create • select • update • delete
  • 14.
    TEST 유저 생성 •익숙해지기 전까지 조금 안전하게 • test 데이터베이스 전용 test 유저 생성 create user 'test'@'%' identified by 'test'; grant all privileges on test.* to 'test'@'%' identified by 'test'; flush privileges;
  • 15.
    [실습] 테스트 하기 •create 테스트 : test 테이블 생성 • id => primary key 설정, auto increment • value => varchar(255) • insert 테스트 • delete 테스트 • drop 테스트