성공적인 웹 프로그래밍
Prod by Yeum Gu Whan
CONTENTS
PRESENTATION TITLE
가. 데이터
나. 데이터베이스
01. 향후 계획
02. QA
다. DB 사용
라. 웹-DB 연동
마. 결론
01 데이터-파일
Prod by Yeum Gu Whan
• 데이터 읽어오기 ex) 회원 정보
 파일 or 데이터베이스
• 파일에 데이터를 저장할 경우
파일 쓰기
파일 열기
파일 잠금
파일 입력
잠금 해제
파일 닫기
파일 읽기
파일 열기
파일 읽기
1. 파일이 커지면 실행 속도가 느려진다.
2. 특정 레코드를 찾기 어렵다.
3. 동시에 파일에 접근하는 현상을 해결하기 어렵다.(병목현상)
4. 언제나 순차적 접근
5. 접근 권한의 한계
 문제 해결 : DataBase 사용
파일 사용 시 문제점
02 DataBase
Prod by Yeum Gu Whan
• 테이블(table) : 데이터로 이루어진 표
• 열(column) : 이름과 데이터형. 속성, 필드
• 행(row) : 레코드, 튜플
• 값 : 열에 대응되는 값
• 기본 키 : 식별을 위한 키
• 외래 키 : 참조되는 키
• 스키마 :
- 데이터베이스에서 테이블의 디자인.
- 데이터베이스의 청사진(계획).
- 개체-관계 다이어그램
개념 및 용어
한꺼번에 수행되어야 할 일련의 연산
<트랜잭션의 요구사항 ACID>
1. Atomicity(원자성) : 트랜잭션은 나누는 것이 불가능. 실행 or 실행X
2. Consistency(일관성) : 데이터베이스는 일관성을 유지해야한다.
3. Isolation(독립성) : 트랜잭션 수행 도중 다른 연산작업은 끼어들 수 없다.
4. Durability(영속성) : 사용자에게 commit응답을 했을 경우, 그 결과는 완전히 반영되어
야 한다.
트랜잭션
• 중복 데이터를 피해야 한다.
- 저장 공간의 낭비
- 잘못된 업데이트(update, insert, delete)
• 하나의 항목에 하나의 데이터
- 각 항목들을 파싱/처리 후 검색(처리의 어려움)
• 알아보기 쉬운 키
- ex) mb_id (O) / mb_name (X)
데이터베이스 디자인 시 주의점
웹 데이터베이스 구조
1 32
6 5 4
03 DataBase 사용
Prod by Yeum Gu Whan
• 데이터베이스 생성
• create database 데이터베이스 이름
데이터베이스 생성
• 테이블 생성
테이블 생성
• 데이터 입력
• insert into 테이블 이름 (컬럼1, 컬럼2, ...) values (‘데이터1’, ‘데이터2’, ...)
INSERT 구문
• 데이터 조회
• select 컬럼 as 별칭 from 테이블
where : 조건
group by : 특정 열을 키로 정의하여 그룹을 짓는 옵션
having : group by로 집계된 값을 통해 연산 결과를 얻고 싶을 때
order by : 결과를 순서대로 정렬
limit 2, 3 : 결과값을 2번째 행으로부터 3개까지만 리턴해준다.
SELECT 구문
연산자 예 설명
= price=3 같은지 비교
> price>3 큰지 비교
< price<3 작은지 비교
>= price>=3 같거나 큰지 비교
<= price<=3 같거나 다른지 비교
!= 또는 <> price!=3 또는 price<>3 두 값이 다른지 비교
IS NOT NULL price is not null 이 필드에 값이 들어있는지
BETWEEN price betweeb 0 and 30 값이 최소값 이상 최대값 이하인지
IN name in (“염규완”, “원
빈”)
값이 특정 집합 안에 있는지
LIKE name like (“염%”) 값이 특정 패턴에 맞는지
REGEXP name regexp 값이 정규표현식과 일치하는지
where 구문에서 자주 사용하는 비교 연산자
통계함수
이름 설명
AVG(칼럼) 특정 열에있는 값들의 평균
COUNT(칼럼) 특정 열이 주어졌을 때 null이 아닌 항목의 개수
MIN(칼럼) 특정 열의 최소값
MAX(칼럼) 특정 열의 최대값
STD(칼럼) 특정 열의 값의 표준편차
STDDEV(칼럼) ‘’
SUM(칼럼) 특정 열의 값들의 합
• 여러개의 테이블에서 데이터를 불어올 때
• full join, cross join : 조인에 쓰인 모든 테이블을 조합, where 사용 X
• inner join : ‘,’ 이나 inner join을 명시하여 사용. where 사용 O
• left join, right join : 왼/오른쪽을 기준으로 잡은 뒤 결과값으로 기준이 되는 테이블은
모두 출력. 기준이 되지 않는 테이블이 값이 없다면 null로 출력
JOIN 구문
• 저장된 데이터 변경
• update 테이블 이름 set 컬럼 = ‘데이터’
where : 조건
order by : 순서
limit : 개수 제한
UPDATE 구문
• ALTER TABLE 테이블이름 수정구문
• 수정구문 – add / modify / drop
테이블 구조 변경
• 데이터 삭제 : delete from 테이블이름 where 조건
• 테이블 삭제 : drop table 테이블 이름
• 데이터베이스 삭제 : drop database 데이터베이스이름
삭제
04 웹-DB 연동
Prod by Yeum Gu Whan
• php 와 MySQL 연동
웹-DB 연동
호스트 이름
사용자
비밀번호
DB이름
쿼리실행
DB 연결
1. 회원 정보 입력
1. 회원 정보 입력
2. 회원 정보 조회
2. 회원 정보 조회
• mysqli_fetch_array() : 쿼리 결과를 리턴받아, column을 key로 data를 값으로 갖는다.
• mysqli_num_rows() : 쿼리 결과로부터 리턴된 행의 수
3. 회원 정보 수정
입력한 이름이 DB에 1개만 존재 시
3. 회원 정보 수정
3. 회원 정보 수정
3. 회원 정보 수정(확인)
4. 회원 정보 삭제
4. 회원 정보 삭제
4. 회원 정보 삭제(확인)
05 향후 계획
Prod by Yeum Gu Whan
• 쇼핑몰 예제를 통한 실무적인 기능
향후 계획
Q A

성공적인웹프로그래밍

  • 1.
  • 2.
    CONTENTS PRESENTATION TITLE 가. 데이터 나.데이터베이스 01. 향후 계획 02. QA 다. DB 사용 라. 웹-DB 연동 마. 결론
  • 3.
  • 4.
    • 데이터 읽어오기ex) 회원 정보  파일 or 데이터베이스 • 파일에 데이터를 저장할 경우 파일 쓰기 파일 열기 파일 잠금 파일 입력 잠금 해제 파일 닫기
  • 5.
  • 6.
    1. 파일이 커지면실행 속도가 느려진다. 2. 특정 레코드를 찾기 어렵다. 3. 동시에 파일에 접근하는 현상을 해결하기 어렵다.(병목현상) 4. 언제나 순차적 접근 5. 접근 권한의 한계  문제 해결 : DataBase 사용 파일 사용 시 문제점
  • 7.
    02 DataBase Prod byYeum Gu Whan
  • 8.
    • 테이블(table) :데이터로 이루어진 표 • 열(column) : 이름과 데이터형. 속성, 필드 • 행(row) : 레코드, 튜플 • 값 : 열에 대응되는 값 • 기본 키 : 식별을 위한 키 • 외래 키 : 참조되는 키 • 스키마 : - 데이터베이스에서 테이블의 디자인. - 데이터베이스의 청사진(계획). - 개체-관계 다이어그램 개념 및 용어
  • 9.
    한꺼번에 수행되어야 할일련의 연산 <트랜잭션의 요구사항 ACID> 1. Atomicity(원자성) : 트랜잭션은 나누는 것이 불가능. 실행 or 실행X 2. Consistency(일관성) : 데이터베이스는 일관성을 유지해야한다. 3. Isolation(독립성) : 트랜잭션 수행 도중 다른 연산작업은 끼어들 수 없다. 4. Durability(영속성) : 사용자에게 commit응답을 했을 경우, 그 결과는 완전히 반영되어 야 한다. 트랜잭션
  • 10.
    • 중복 데이터를피해야 한다. - 저장 공간의 낭비 - 잘못된 업데이트(update, insert, delete) • 하나의 항목에 하나의 데이터 - 각 항목들을 파싱/처리 후 검색(처리의 어려움) • 알아보기 쉬운 키 - ex) mb_id (O) / mb_name (X) 데이터베이스 디자인 시 주의점
  • 11.
  • 12.
    03 DataBase 사용 Prodby Yeum Gu Whan
  • 13.
    • 데이터베이스 생성 •create database 데이터베이스 이름 데이터베이스 생성
  • 14.
  • 15.
    • 데이터 입력 •insert into 테이블 이름 (컬럼1, 컬럼2, ...) values (‘데이터1’, ‘데이터2’, ...) INSERT 구문
  • 16.
    • 데이터 조회 •select 컬럼 as 별칭 from 테이블 where : 조건 group by : 특정 열을 키로 정의하여 그룹을 짓는 옵션 having : group by로 집계된 값을 통해 연산 결과를 얻고 싶을 때 order by : 결과를 순서대로 정렬 limit 2, 3 : 결과값을 2번째 행으로부터 3개까지만 리턴해준다. SELECT 구문
  • 17.
    연산자 예 설명 =price=3 같은지 비교 > price>3 큰지 비교 < price<3 작은지 비교 >= price>=3 같거나 큰지 비교 <= price<=3 같거나 다른지 비교 != 또는 <> price!=3 또는 price<>3 두 값이 다른지 비교 IS NOT NULL price is not null 이 필드에 값이 들어있는지 BETWEEN price betweeb 0 and 30 값이 최소값 이상 최대값 이하인지 IN name in (“염규완”, “원 빈”) 값이 특정 집합 안에 있는지 LIKE name like (“염%”) 값이 특정 패턴에 맞는지 REGEXP name regexp 값이 정규표현식과 일치하는지 where 구문에서 자주 사용하는 비교 연산자
  • 18.
    통계함수 이름 설명 AVG(칼럼) 특정열에있는 값들의 평균 COUNT(칼럼) 특정 열이 주어졌을 때 null이 아닌 항목의 개수 MIN(칼럼) 특정 열의 최소값 MAX(칼럼) 특정 열의 최대값 STD(칼럼) 특정 열의 값의 표준편차 STDDEV(칼럼) ‘’ SUM(칼럼) 특정 열의 값들의 합
  • 19.
    • 여러개의 테이블에서데이터를 불어올 때 • full join, cross join : 조인에 쓰인 모든 테이블을 조합, where 사용 X • inner join : ‘,’ 이나 inner join을 명시하여 사용. where 사용 O • left join, right join : 왼/오른쪽을 기준으로 잡은 뒤 결과값으로 기준이 되는 테이블은 모두 출력. 기준이 되지 않는 테이블이 값이 없다면 null로 출력 JOIN 구문
  • 20.
    • 저장된 데이터변경 • update 테이블 이름 set 컬럼 = ‘데이터’ where : 조건 order by : 순서 limit : 개수 제한 UPDATE 구문
  • 21.
    • ALTER TABLE테이블이름 수정구문 • 수정구문 – add / modify / drop 테이블 구조 변경 • 데이터 삭제 : delete from 테이블이름 where 조건 • 테이블 삭제 : drop table 테이블 이름 • 데이터베이스 삭제 : drop database 데이터베이스이름 삭제
  • 22.
    04 웹-DB 연동 Prodby Yeum Gu Whan
  • 23.
    • php 와MySQL 연동 웹-DB 연동 호스트 이름 사용자 비밀번호 DB이름 쿼리실행 DB 연결
  • 24.
  • 25.
  • 26.
  • 27.
    2. 회원 정보조회 • mysqli_fetch_array() : 쿼리 결과를 리턴받아, column을 key로 data를 값으로 갖는다. • mysqli_num_rows() : 쿼리 결과로부터 리턴된 행의 수
  • 28.
    3. 회원 정보수정 입력한 이름이 DB에 1개만 존재 시
  • 29.
  • 30.
  • 31.
    3. 회원 정보수정(확인)
  • 32.
  • 33.
  • 34.
    4. 회원 정보삭제(확인)
  • 35.
    05 향후 계획 Prodby Yeum Gu Whan
  • 36.
    • 쇼핑몰 예제를통한 실무적인 기능 향후 계획
  • 37.