목록콤퓨타 왕기초 (187)
파게로그
데이터 모델링 현실 세계를 데이터베이스로 표현하기 위해서 추상화하는 것 데이터 모델링의 특징 추상화(abstraction) 현실 세계를 간략하게 표현함 단순화(simplification) 누구나 쉽게 이해할 수 있도록 표현함 명확화(clarification) 의미가 명확하게 해석되어야 하며, 한 가지 의미를 지녀야 함 데이터 모델링의 단계 개념적 모델링(conceptual data modeling) - entity와 attribute를 도출하고 개념적 ERD를 작성한다. - 비즈니스 프로세스를 분석하고 업무 전체에 대해 데이터 모델링을 수행한다. - 업무적 관점에서 모델링한다. - 기술적인 용어 사용은 자제한다. - 중요한 부분을 위주로 모델링한다. 논리적 모델링(logical data modeling)..
트랜잭션 처리는 ACID를 유지하는 것 Automaticity: 원자성 (★) Consistency: 일관성 (제약 조건을 잘 걸면 지켜짐) Isolation: 고립성 (★) Durability: 지속성 (COMMIT을 하면 지켜짐)
만약 hit이라는 컬럼이 있고 그 값이 10 이상인 아이템만 조회하고 싶다면 1. 읽어온 후 while문에서 처리 while(rs.next()) { int hit = rs.getInt("HIT"); if (hit 10"; 2번을 택해야 한다. === 데이터 필터링, 정렬, 그룹화 등의 모든 데이터 연산은 데이터베이스에서 처리한다. === === 자바는 UI 레이아웃만... vs 데이터 가공처리는 SQL이... ===
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/v9jFC/btqZ3fXvfgy/u0Plmx4bhcd0HzlPkhvby0/img.png)
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Date; public class Program { public static void main(String[] args) throws ClassNotFoundException, SQLException { String url = "jdbc:oracle:thin:@localhost:1521/xepdb1"; String sql = "SELECT * FROM NOTICE"; String id = "DDOONGI"; String p..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pMwte/btqZWOANhNt/niRIYVCLcAfoX7znWwJR5k/img.png)
JDBC: Java Database Connectivity 예를 들어... 코드에서 DB에 접속할 때 개별 제품에 종속된 코드(DBMS의존적인)를 짜려면 개별 db에 대해서도 알아야 하고 DBMS 바꾸기도 힘들고... 연결/인증Connection 문장실행Statement 결과패치ResultSet JDBC는 이러한 기능들을 단일화해줌 (이 말은 곧 DBMS만의 특화된 기능들을 못 쓰는 건가...?) JDBC 드라이버(DBMS마다 별개)가 실제 구동 코드를 가지고있고 개발자는 JDBC가 제공하는 기능을 이용 1. 드라이버 로드하기 2. 연결 생성하기 3. 문장 실행하기 4. 결과집합 사용하기 JDBC 드라이버 설치 예) 오라클 DBMS 드라이버 설치 import java.sql.Connection; publ..
조회를 하면 결과집합을 내어놓으면서 ROWNUM이라는 (보이지 않는) 번호가 추가된다. ROWNUM 이름 아이디 번호 계정 생성연도 1 홍길동 1056 1755 2 임꺽정 2355 1830 3 이순신 714 1815 이 ROWNUM은 실제로 사용 가능할까? SELECT * FROM MEMBER WHERE ROWNUM BETWEEN 1 AND 2; -- 실행 가능 SELECT * FROM MEMBER WHERE ROWNUM BETWEEN 1 AND 5; -- 아무것도 조회되지 않음 결과집합을 만들 때(SELECT에서 WHERE문이 실행될 때) ROWNUM이 만들어지는 것 ROWNUM을 먼저 맞추어놓고, 그 후 서버에서 결과를 가져와서 데이터를 넣음. 맞지 않는 데이터는 ROWNUM은 그대로 두고 빼버림 S..
REGEX_LIKE 참고) regexlib.com 다른 언어의 정규표현식처럼 사용하면 되며, 오라클에서는 REGEXP_LIKE라는 함수를 사용한다. eg) 전화번호 찾기 SELECT * FROM BOARD WHERE CONTENT REGEXP_LIKE(CONTENT, '01[016-9]-\d{3,4}-\d{4}'); eg) 이메일 찾기 \D\w*@\D\w*.(org|net|com)
LIKE, %, _ '박'씨 성을 가진 회원 조회하기 SELECT * FROM MEMBER WHERE NAME LIKE '박%'; %: 한 글자 이상 (?인지 +인지 체크해보기) '박'씨 성을 가진 두 글자 이름 회원 조회하기 SELECT * FROM MEMBER WHERE NAME LIKE '박_'; '박'씨 성을 가진 외자 이름 회원 조회하기 SELECT * FROM MEMBER WHERE NAME LIKE '박_'; '박'씨 성을 제외한 회원 조회 SELECT * FROM MEMBER WHERE NAME NOT LIKE '박%'; 이름에 '박'이 들어간 회원 조회 SELECT * FROM MEMBER WHERE NAME LIKE '%박%';