SlideShare a Scribd company logo
Relational Database

Design Bootcamp
Mark Niebergall

Longhorn PHP 2019

https://joind.in/talk/9d7a6

https://github.com/mbniebergall/database-bootcamp
Mark Niebergall
• PHP since 2005

• Masters degree in MIS

• Senior Software Engineer

• Drug screening project

• Utah PHP Co-Organizer

• CSSLP, SSCP Certified and SME

• Father, long distance running, fishing, skiing
Survey
• Beginner - know of databases but haven’t written SQL?

• Intermediate - know how to write queries, create tables?

• Advanced - database administrator, years of experience?
Relational Database Design Bootcamp
• 3 hour tutorial

• Hands-on learning

• Learn concepts

• Design databases
Relational Database Design Bootcamp
• 1:00-1:30 Key concepts

• 1:30-2:00 Class Project Design

• 2:00-2:10 Break

• 2:10-2:30 Class Project Design (continued)

• 2:30-3:00 Group Projects

• 3:00-3:10 Break

• 3:10-3:30 Group Projects

• 3:30-3:50 Group Project Presentations

• 3:50-4:00 Review and Discussion
Relational Database Design Bootcamp
• Ask questions anytime

- Others probably have same question
Objectives
• Increased knowledge and experience with relational
database design
Objectives
• Know how to create tables with relationships

• Ensure data integrity

• Understand database normalization

• Tweak database performance
Setup
• Access to any MySQL server

- Free community server https://dev.mysql.com/
downloads/mysql/

- Ideally version 8, minimum 5.7+

- MySQL client of your choice

‣ Sequel Pro: Mac, free, https://www.sequelpro.com/

‣ PhpStorm: https://www.jetbrains.com/help/
phpstorm/relational-databases.html

‣ Terminal or Cmd
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Use Cases
• Database

- Storage of data

- Organized into tables

- Relationships represented with constraints

- Replacement for spreadsheets
Use Cases
Use Cases
• Online store

• Students at a school

• Warehouse inventory

• Medical providers

• Biology research
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Data Types
• Name all 8 PHP data types?

• Name 2 PHP pseudo data types?
Data Types
• Name all 8 PHP data types?

- Scalar: boolean, integer, float, string

- Compound: array, object

- Special: resource, null

• Name 2 PHP pseudo data types?

- Compound: callable, iterable
Data Types
• Database types

- Numeric

- Date and time

- String

- JSON
Data Types
• Numeric

- BIT: BIT(4) 1001

- BOOL: 0 or 1

- INT: +/- 2147483647

- DECIMAL: DECIMAL(6, 2) 123456.78
Data Types
• Date and Time

- DATE

- TIME

- DATETIME

- TIMESTAMP
Data Types
• String

- CHAR

- VARCHAR

- BLOB

- TEXT

- ENUM
Data Types
• JSON

- {“name”: “widget”, “description”: “does something”}

- [123, 4567]

- {“id”: 321, “codes”: [“abc”, “xyz”]}
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Create Tables
• Data modeling

- Logical grouping

- Reduce duplicate data

- Table relationships
Create Tables
• CREATE DATABASE warehouse;
Create Tables
• USE warehouse;



CREATE TABLE item (

id INT NOT NULL AUTO_INCREMENT,

code VARCHAR(20) NULL,

quantity INT NOT NULL DEFAUL 0,



PRIMARY KEY (id),



CONSTRAINT UK_item_code

UNIQUE KEY (code)



) ENGINE=INNODB;

Create Tables
• USE warehouse;



ALTER TABLE item

ADD COLUMN description VARCHAR(200) NULL

AFTER code;
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Constraints
• Ensure data

- CONSTRAINT UK_key_name

UNIQUE KEY (column_name[, column_b, …])

- NULL value considerations
Constraints
• Ensure data

- CONSTRAINT FK_name

FOREIGN KEY (table_column)

REFERENCES another_table (that_table_column)

ON DELETE NO ACTION

ON UPDATE CASCADE
Constraints
• Ensure data

- CONSTRAINT FK_name

FOREIGN KEY (column_a, column_b)

REFERENCES another_table (column_a, column_b)

ON DELETE NO ACTION

ON UPDATE CASCADE
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Normalization
• Reduce data redundancy

• Increase data integrity
Normalization
• Levels of Normal Form

- 1NF

- 2NF

- 3NF

- EKNF (Elementary Key)

- BCNF (Boyce-Codd)

- 4NF

- ETNF (Essential Tuple)

- 5NF

- DKNF (Domain Key)

- 6NF
Normalization
• Considerations

- Performance

- Data size
Normalization
https://i.stack.imgur.com/7JoKT.jpg
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Design Principles
• Practical data mapping
Design Principles
• Naming that makes sense
Design Principles
• Correct data types
Design Principles
• Accurately reflects relationships

- Boil down to simplest form
Design Principles
• S - Single Responsibility: do one thing well

• O - Open-Closed: open for extension, closed for modification

• L - Liskov Substitution: replaceable with subtypes

• I - Interface Segregation: break apart interfaces logically

• D - Dependency Inversion: dependency injection
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Performance
• Decreases as data volume increases
Performance
• Denormalization

- Use constraints to retain data integrity
Performance
• Database indexes

- INDEX IX_name (column_a)

- ALTER TABLE some_table

ADD INDEX IX_name (column_a, column_b);
Performance
• Avoid

- LIKE ‘%abc%’

- JOIN table t ON t.a = x.a OR t.b = y.b

- WHERE (t.a = x.a OR t.b = y.b)

- COUNT(*) [no limit set]

- ORDER BY CONCAT(non_index_varchar_a, b)

- GROUP BY a, b, c
Performance
• EXPLAIN

- EXPLAIN SELECT…

- EXPLAIN DELTE…

- EXPLAIN INSERT…

- EXPLAIN REPLACE…

- EXPLAIN UPDATE…
Performance
• EXPLAIN

- Fast: Using index

- Okay: Using where

- Slow: Using filesort

- Slow: Using temporary
Performance
EXPLAIN

SELECT COUNT(b.code) AS building_code_count,

b.code,

i.description

FROM building b

JOIN rack r

ON r.building_id = b.id

JOIN shelf s

ON s.rack_id = r.id

JOIN location l

ON s.id = l.shelf_id

JOIN location_item li

ON l.id = li.location_id

JOIN item i

ON i.barcode = li.item_barcode

WHERE b.code LIKE '%5%'

AND i.description LIKE '%pig%'

GROUP BY b.code, i.description;
Performance
1,SIMPLE,b,,index,PRIMARY,UK_building_code,22,,8,12.5,Using where; Using index; Using temporary; Using filesort

1,SIMPLE,i,,ALL,PRIMARY,,,,10,11.11,Using where; Using join buffer (Block Nested Loop)

1,SIMPLE,r,,ref,"PRIMARY,FK_rack_building",FK_rack_building,4,warehouse.b.id,9,100,Using index

1,SIMPLE,s,,ref,"PRIMARY,UK_shelf",UK_shelf,4,warehouse.r.id,9,100,Using index

1,SIMPLE,l,,ref,"PRIMARY,FK_location_shelf",FK_location_shelf,4,warehouse.s.id,9,100,Using index

1,SIMPLE,li,,eq_ref,"PRIMARY,UK_item_location",PRIMARY,46,"warehouse.l.id,warehouse.i.barcode",1,100,Using index
Performance
• Make it work, make it fast, make it right

• Performance tuning during project building
Performance
• Considerations

- Disk space

- Breaking queries apart

- Combining queries

- Stored procedures

- Views

- Functions

- User workflows
Overview
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Project
• Warehouse inventory on shelves
Project
http://cdn.idplate.com/images/warehouse-rack-bar-code-labels.jpg
Project
• https://github.com/mbniebergall/database-bootcamp
Team Project
• Groups of about 4

• Work together on design

- Data model with normalization

- Create database

- Create tables

- Populate tables

- Add indexes
Team Project
• Parking lot

• Elephpant collections

• Family Tree

• Exercise tracker

• Messenger queue

• Pet daycare

• Sports roster

• Driver licenses

• Airline seating
Team Project
• Share

- Project chosen

- Tables

- Relationships

- Normalization

- Performance

- Difficulties
Team Project
Review and Discussion
• Use cases

• Data types

• Create tables

• Constraints

• Normalization

• Design principles

• Performance
Review and Discussion
• Class project

• Group projects
Review and Discussion
• Discussion

- Denormalization

- Performance tuning

- Security

- Business Logic
Review and Discussion
• Discussion

- Stored Procedures

- Functions

- Triggers

- Views
Review and Discussion
• Anything PHP
Questions?
• Rate on joind.in https://joind.in/talk/9d7a6

More Related Content

What's hot

RedisSearch / CRDT: Kyle Davis, Meir Shpilraien
RedisSearch / CRDT: Kyle Davis, Meir ShpilraienRedisSearch / CRDT: Kyle Davis, Meir Shpilraien
RedisSearch / CRDT: Kyle Davis, Meir Shpilraien
Redis Labs
 

What's hot (20)

Search summit-2018-ltr-presentation
Search summit-2018-ltr-presentationSearch summit-2018-ltr-presentation
Search summit-2018-ltr-presentation
 
NoSQL Roundup
NoSQL RoundupNoSQL Roundup
NoSQL Roundup
 
Search summit-2018-content-engineering-slides
Search summit-2018-content-engineering-slidesSearch summit-2018-content-engineering-slides
Search summit-2018-content-engineering-slides
 
Graph databases
Graph databasesGraph databases
Graph databases
 
LODOP - Multi-Query Optimization for Linked Data Profiling Queries
LODOP - Multi-Query Optimization for Linked Data Profiling QueriesLODOP - Multi-Query Optimization for Linked Data Profiling Queries
LODOP - Multi-Query Optimization for Linked Data Profiling Queries
 
Solving real world data problems with Jerakia
Solving real world data problems with JerakiaSolving real world data problems with Jerakia
Solving real world data problems with Jerakia
 
Sparql
SparqlSparql
Sparql
 
IPython Notebook as a Unified Data Science Interface for Hadoop
IPython Notebook as a Unified Data Science Interface for HadoopIPython Notebook as a Unified Data Science Interface for Hadoop
IPython Notebook as a Unified Data Science Interface for Hadoop
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQL
 
RedisSearch / CRDT: Kyle Davis, Meir Shpilraien
RedisSearch / CRDT: Kyle Davis, Meir ShpilraienRedisSearch / CRDT: Kyle Davis, Meir Shpilraien
RedisSearch / CRDT: Kyle Davis, Meir Shpilraien
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
 
Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...
Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...
Dan Sullivan - Data Analytics and Text Mining with MongoDB - NoSQL matters Du...
 
Hadoop with Python
Hadoop with PythonHadoop with Python
Hadoop with Python
 
Getting started with Graph Databases & Neo4j
Getting started with Graph Databases & Neo4jGetting started with Graph Databases & Neo4j
Getting started with Graph Databases & Neo4j
 
Performance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4jPerformance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4j
 
AI from your data lake: Using Solr for analytics
AI from your data lake: Using Solr for analyticsAI from your data lake: Using Solr for analytics
AI from your data lake: Using Solr for analytics
 
Solr JDBC: Presented by Kevin Risden, Avalon Consulting
Solr JDBC: Presented by Kevin Risden, Avalon ConsultingSolr JDBC: Presented by Kevin Risden, Avalon Consulting
Solr JDBC: Presented by Kevin Risden, Avalon Consulting
 
Big data
Big dataBig data
Big data
 
HBaseCon 2013: Honeycomb - MySQL Backed by Apache HBase
HBaseCon 2013: Honeycomb - MySQL Backed by Apache HBase HBaseCon 2013: Honeycomb - MySQL Backed by Apache HBase
HBaseCon 2013: Honeycomb - MySQL Backed by Apache HBase
 
Future of HCatalog
Future of HCatalogFuture of HCatalog
Future of HCatalog
 

Similar to Relational Database Design Bootcamp

Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...
Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...
Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...
Citus Data
 
What's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial usersWhat's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial users
Wes McKinney
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
Neo4j
 

Similar to Relational Database Design Bootcamp (20)

ElasticSearch AJUG 2013
ElasticSearch AJUG 2013ElasticSearch AJUG 2013
ElasticSearch AJUG 2013
 
SQL Now! How Optiq brings the best of SQL to NoSQL data.
SQL Now! How Optiq brings the best of SQL to NoSQL data.SQL Now! How Optiq brings the best of SQL to NoSQL data.
SQL Now! How Optiq brings the best of SQL to NoSQL data.
 
Webinar: Scaling MongoDB
Webinar: Scaling MongoDBWebinar: Scaling MongoDB
Webinar: Scaling MongoDB
 
The Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'tsThe Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'ts
 
Taming the shrew Power BI
Taming the shrew Power BITaming the shrew Power BI
Taming the shrew Power BI
 
Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...
Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...
Data Modeling, Normalization, and Denormalisation | FOSDEM '19 | Dimitri Font...
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The Move
 
MongoDB Days Germany: Data Processing with MongoDB
MongoDB Days Germany: Data Processing with MongoDBMongoDB Days Germany: Data Processing with MongoDB
MongoDB Days Germany: Data Processing with MongoDB
 
Apache Spark sql
Apache Spark sqlApache Spark sql
Apache Spark sql
 
Ipc mysql php
Ipc mysql php Ipc mysql php
Ipc mysql php
 
Introduction to Neo4j and .Net
Introduction to Neo4j and .NetIntroduction to Neo4j and .Net
Introduction to Neo4j and .Net
 
How to Achieve Scale with MongoDB
How to Achieve Scale with MongoDBHow to Achieve Scale with MongoDB
How to Achieve Scale with MongoDB
 
What's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial usersWhat's new in pandas and the SciPy stack for financial users
What's new in pandas and the SciPy stack for financial users
 
Graphs fun vjug2
Graphs fun vjug2Graphs fun vjug2
Graphs fun vjug2
 
MongoDB & NoSQL 101
 MongoDB & NoSQL 101 MongoDB & NoSQL 101
MongoDB & NoSQL 101
 
Best Practices for Hyperparameter Tuning with MLflow
Best Practices for Hyperparameter Tuning with MLflowBest Practices for Hyperparameter Tuning with MLflow
Best Practices for Hyperparameter Tuning with MLflow
 
Case study of Rujhaan.com (A social news app )
Case study of Rujhaan.com (A social news app )Case study of Rujhaan.com (A social news app )
Case study of Rujhaan.com (A social news app )
 
Spark Summit EU talk by Shay Nativ and Dvir Volk
Spark Summit EU talk by Shay Nativ and Dvir VolkSpark Summit EU talk by Shay Nativ and Dvir Volk
Spark Summit EU talk by Shay Nativ and Dvir Volk
 
Spark Summit EU 2015: Combining the Strengths of MLlib, scikit-learn, and R
Spark Summit EU 2015: Combining the Strengths of MLlib, scikit-learn, and RSpark Summit EU 2015: Combining the Strengths of MLlib, scikit-learn, and R
Spark Summit EU 2015: Combining the Strengths of MLlib, scikit-learn, and R
 
MongoDB: What, why, when
MongoDB: What, why, whenMongoDB: What, why, when
MongoDB: What, why, when
 

More from Mark Niebergall

More from Mark Niebergall (20)

Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023Filesystem Management with Flysystem - php[tek] 2023
Filesystem Management with Flysystem - php[tek] 2023
 
Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023Leveling Up With Unit Testing - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023
 
Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023Filesystem Management with Flysystem at PHP UK 2023
Filesystem Management with Flysystem at PHP UK 2023
 
Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022Leveling Up With Unit Testing - LonghornPHP 2022
Leveling Up With Unit Testing - LonghornPHP 2022
 
Developing SOLID Code
Developing SOLID CodeDeveloping SOLID Code
Developing SOLID Code
 
Unit Testing from Setup to Deployment
Unit Testing from Setup to DeploymentUnit Testing from Setup to Deployment
Unit Testing from Setup to Deployment
 
Stacking Up Middleware
Stacking Up MiddlewareStacking Up Middleware
Stacking Up Middleware
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and Behat
 
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and BehatBDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and Behat
 
Hacking with PHP
Hacking with PHPHacking with PHP
Hacking with PHP
 
Starting Out With PHP
Starting Out With PHPStarting Out With PHP
Starting Out With PHP
 
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
 
Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018Debugging PHP with Xdebug - PHPUK 2018
Debugging PHP with Xdebug - PHPUK 2018
 
Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018Advanced PHP Simplified - Sunshine PHP 2018
Advanced PHP Simplified - Sunshine PHP 2018
 
Defensive Coding Crash Course Tutorial
Defensive Coding Crash Course TutorialDefensive Coding Crash Course Tutorial
Defensive Coding Crash Course Tutorial
 
Inheritance: Vertical or Horizontal
Inheritance: Vertical or HorizontalInheritance: Vertical or Horizontal
Inheritance: Vertical or Horizontal
 
Cybersecurity State of the Union
Cybersecurity State of the UnionCybersecurity State of the Union
Cybersecurity State of the Union
 
Cryptography With PHP - ZendCon 2017 Workshop
Cryptography With PHP - ZendCon 2017 WorkshopCryptography With PHP - ZendCon 2017 Workshop
Cryptography With PHP - ZendCon 2017 Workshop
 
Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017Defensive Coding Crash Course - ZendCon 2017
Defensive Coding Crash Course - ZendCon 2017
 
Leveraging Composer in Existing Projects
Leveraging Composer in Existing ProjectsLeveraging Composer in Existing Projects
Leveraging Composer in Existing Projects
 

Recently uploaded

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 

Recently uploaded (20)

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 

Relational Database Design Bootcamp