create index family_name_upper_idx on person_name (upper(family_name));
create index given_name_upper_idx on person_name (upper(given_name));
create index middle_name_upper_idx on person_name (upper(middle_name));
create index series_desc_upper_idx on series (upper(series_desc));
create index study_desc_upper_idx on study (upper(study_desc));
Since MySQL 5.7 you can index a generated columns as follows:
ALTER TABLE employees
ADD COLUMN last_name_up VARCHAR(255) AS (UPPER(last_name));
CREATE INDEX emp_up_name ON employees (last_name_up);
ALTER TABLE person_name ADD COLUMN family_name_up VARCHAR(255) AS (UPPER(family_name));
create index family_name_upper_idx on person_name (UPPER(family_name_up));
ALTER TABLE person_name ADD COLUMN given_name_up VARCHAR(255) AS (UPPER(given_name));
create index given_name_upper_idx on person_name (upper(given_name_up));
ALTER TABLE person_name ADD COLUMN middle_name_up VARCHAR(255) AS (UPPER(middle_name));
create index middle_name_upper_idx on person_name (upper(middle_name_up));
ALTER TABLE series ADD COLUMN series_desc_up VARCHAR(255) AS (UPPER(series_desc));
create index series_desc_upper_idx on series (upper(series_desc_up));
ALTER TABLE study ADD COLUMN study_desc_up VARCHAR(255) AS (UPPER(study_desc));
create index study_desc_upper_idx on study (upper(study_desc_up));