DBMS 9

MySQL을 활용한 단어장 만들기

MySQLdb 라이브러리를 메모리에 불러오는 것 Word class 영어단어(eng), 뜻(kor), 레벨(lev) 정보를 하나의 객체로 묶어 관리lev=1 : 레벨의 기본값을 1로 지정 객체를 출력할 때 어떻게 보일지 정의__repr__ : repr() 함수가 호출되거나 리스트 안에 객체가 들어 있을 때 자동으로 사용되는 메서드__repr__ 가 없을 때 : 주소 같은 이상한 값이 나옴 속성을 이용해서 값을 안전하게 관리하는 방법@property : 값을 가져오는 함수 getter, 변수처럼 사용할 수 있음 ( ex : word.get_eng() => word.eng )setter : 값을 설정하는 함수raise ValueError() : 오류를 일부러 발생시킴 1 ...

DBMS 2026.06.09

MySQL -> Python 연동

1 . mysqlclient 파이썬에서 MySQL 데이터베이스와 상호작용하기 위해 사용하는 공식 라이브러리PyMySQL, mysqlclient를 가장 많이 사용사용법은 비슷하나 mysqlclient가 속도상으로 유리하기 때문에 권장 1 - 1 . MySQL 접속 => MySQLdb.connect(host='IP주소', user='사용자명', password='비밀번호', db='데이터베이스명') 1 - 2 . cursor 생성 하나의 데이터베이스 connection에 대해 독립적으로 SQL문을 실행할 수 있는 작업 환경을 제공하는 객체하나의 connection에 동시에 한 개의 cursor만 생성할 수 있으며 cursor을 통해 SQL문을 실행하면 튜플 단위로 결과 반환 - cur.ex..

DBMS 2026.06.09

7_ 뷰(View)

1 . 뷰 (View) select문을 저장해 둔 가상의 테이블create view 뷰이름 as select문 뷰를 사용하는 이유 1 . 복잡한 SQL을 단순화 2 . 재사용(자주 쓰는 조회 저장) 3 . 가독성(SQL을 보기 쉽게 구성) 4 . 보안(특정 컬럼만 공개) 데이터를 직접 저장하지 않음(원본 테이블의 select 결과를 보여주는 가상 테이블)member테이블 데이터를 변경 -> view 결과도 같이 변경됨 1 - 1 . 뷰 만들기 - create view 뷰이름 as select 1 - 2 . 뷰 수정하기 - create or replace view 뷰이름 as select ~ 1 - 3 . 뷰 삭제하기 - drop view 뷰이름 1 - 4 . 뷰 구조..

DBMS 2026.06.09

5 . 사용자 계정

1 . 사용자 계정 데이터 베이스에 접속할 수 있는 로그인 계정root 계정은 모든 권한을 가진 계정이기 때문에 실제 사용 시 위험할 수 있음프로젝트별로 계정을 따로 만들고 필요한 권한만 부여하는 것이 일반적 1 - 1 . 사용자 계정 만들기 ex) create user 'apple'@'localhost' identified by '1111'; localhost : 사용하고 있는 컴퓨터, 같은(현재 사용하고 있는) 컴퓨터에서만 접속, 외부접근 Xcreate user '계정명'@'접속위치' identified by '비밀번호';'apple'@'%' : 어디서든 접속 가능'apple'@'192.168.0.%' : 192.168.0으로 시작하는 내부망에서만 접속 가능'apple'@'192.1..

DBMS 2026.06.08

6 . MySQL 함수

1 . 문자열 함수 1 - 1 . concat()- 문자열 이어주는 함수 1 - 2 . left(), right()- 문자열의 왼쪽/오른쪽 일부를 가져오는 함수 1 - 3 . substring()- 문자열의 일부를 추출하는 함수 1 - 4 . char_length(), length()- 문자 개수, 바이트 수 구해주는 함수 1 - 5 . trim(), ltrim(), rtrim()- 공백 제거해주는 함수, l : left, r : right 1 - 6 . replace()- 문자열 치환해주는 함수 1 - 7 . lower(), upper()- 소문자, 대문자 변환해 주는 함수 2 . 수학 함수 2 - 1 .abs()- 절댓값 구해주는 함수 2 - 2 . roun..

DBMS 2026.06.08

4 . 서브쿼리

1 . 서브쿼리(sub Query) sql문 안에 들어가는 또 다른 sql(select) 문select . . . from where 컬럼이름 = (select . . . );ex) 김사과보다 포인트가 많은 회원을 검색하기 - 이전까지 배운 것 활용 : select point from member where name='김사과'; select * from member where point > 150; - 서브쿼리 사용 : select * from member where point > (select point from member where name = '김사과'); 1 - 1 . 단일 행 서브쿼리 결과가 하나의 값만 나오는 서브쿼리 ex) 포인트가 가장 높은 회원..

DBMS 2026.06.08

3 . 정규화

1 . 정규화 Normalization데이터베이스 테이블을 효율적으로 구조화하는 작업중복 데이터를 줄이고 데이터가 꼬이지 않게 테이블을 나누는 과정 1 -1 . 정규화 단계 ( 오늘 수업은 1~3단계까지 진행) 제1 정규형(1NF) : 하나의 칸에는 하나의 값만 들어가야 함 -> 원자값이 아닌 도메인 분해제2 정규형(2NF) : 1NF를 만족하고, 기본키 전체에 완전 종속되어야 함, 부분적 함수 종속 제거제3 정규형(3NF) : 2NF를 만족하고, 이행적 함수 종속 제거해야 함BCNF 정규화(BCNF) :결정자이면서 후보키가 아닌 것 제거제4 정규형(4NF) :다치 종속 제거제5 정규형(5NF) :조인 종속성 이용 - 이행적 종속 : A -> B, B -> C, A -> C ..

DBMS 2026.06.08

2 . SQL

1 . SQL 다운로드하기 https://dev.mysql.com/downloads/installer/ 사이트 접속8.0.46 버전의 파일 윈도우로 다운'full' 선택 후 next를 눌러 나오는 것 전부 다운 받기‘Authentication Method’ 창이 나오기 전까지 next 선택Use Legacy Authentication Method(Retain MySQL 5.x Compatibility) 체크 후 Next 선택아이디 패스워드 설정 후 ‘Connect To Server’창이 나오기 전까지 next 선택‘Connect To Server’ 창에서 패스워드에 본인이 설정한 비밀번호를 입력한 뒤 Status 칸이 초록색이 되면 next 선택next -> finish를 누르고 자동 생성되는 MySQL..

DBMS 2026.06.05

1 . 데이터베이스 기초 (DB, DBMS, RDBMS, SQL)

데이터(data)- 정보를 나타내는 숫자, 문자, 기호의 집합- 가공되지 않은 사실이나 값의 집합 데이터베이스(database) - DB- 체계적으로 저장하고 관리하는 데이터의 집합- 특정 목적을 위해 조직화되고 관리- 정보를 효율적으로 저장, 검색, 업데이트, 관리할 수 있는 기술적인 도구와 구조를 제공 데이터와 데이터 베이스의 차이 데이터데이터 베이스의미개별 사실이나 값데이터를 체계적으로 모아둔 저장소규모작은 단위큰 단위 데이터베이스 관리 시스템(DataBase Management System) - DBMS- 데이터베이스를 저장, 생성, 수정, 삭제, 관리할 수 있는 기술적인 소프트웨어- 주요 기능 : 데이터 저장 및 관리, 데이터 검색 및 수정, 데이터 보안 관리, 데이터 무결성 유지, 동시 접근..

DBMS 2026.06.04